import collections

n = int(input())
s = list(input())
# 黒い石("#")のすぐ右に白い石(".")があるような箇所がないようにしたい
# つまり、...... or .......###  or ###### の形

# 全部同じ奴にするに変えるべき個数 num1
c = dict(collections.Counter(s))
#print(c)
try:
  cnt1 = min(c['#'],c['.'])
except KeyError:
  cnt1 = 0
#print(cnt1)

# 左側に....を寄せるために変えるべき個数
# 右から調べていって、"#."となっているところがあれば、"##"に変える。
# ↑このやり方だと、"#..#"みたいなタイプに対応できない
cnt2 = 0
stack = []
for i in range(n-1,0,-1):
  # もしかしたら "#..#" タイプかも・・・
  if s[i-1] == "." and s[i]=="#":
    stack.append(".")
  
  # "#..#" タイプで挟まれてる最中かも・・・
  if stack and s[i-1] == "." and s[i]==".":
    stack.append(".")
  
  # "#..#" タイプの挟み終わり
  if stack and s[i-1] == "#" and s[i]==".":
    cnt2 += len(stack)
    stack = []
    
print(min(cnt1,cnt2))  
