import math, string, itertools, fractions, heapq, collections, re,  array, bisect, sys, random, time, copy, functools
sys.setrecursionlimit(10**7)
inf = 10 ** 20
eps = 1.0 / 10**10
mod = 10**9+7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]
def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def _I(): return int(sys.stdin.readline())
def _F(): return float(sys.stdin.readline())
def pf(s): return print(s, flush=True)

N=_I()
S=input()
#print(S)
for sidx in range(N):
	#print("a",sidx)

	if S[sidx]=="#":
		S=S[sidx:]
		break
if len(S)==0:
	print(0)
	exit()

#print(S)
S=S[::-1]
for sidx in range(len(S)):
	if S[sidx]==".":
		S=S[sidx:]
		break
if len(S)==0:
	print(0)
	exit()

#print(S)
S=S[::-1]

black=0
white=S.count(".")
ans=inf
for idx in range(len(S)):
	if S[idx] == "#":
		black+=1
	else:
		white-=1
	ans=min(ans,black+white)
	
print(ans)
		
	
