N = int(input())
S = str(input())
first_B = S.find('#') #最初の黒より前の白を消去するため　初めて出てくる黒の場所を取得
if first_B == -1: #黒がない=全部白-->回数0
    answer = 0
else:
    S = S[first_B:] #最初の白の部分を全部消去
    rev_S = S[::-1] #反転　終わり側から続く黒は不要なため
#    print (rev_S, 'rev_S')
#    print(S)
    last_W = rev_S.find('.') #(反転後で)最初の白より前の黒を消去するため　反転後に初めて白が出てくる場所を取得　
    if last_W == -1: #白がない-->全部黒-->もともと白...白＋黒...黒 -->k耐えは0回
#        n_W = S.count('.')
#        n_B = S.count('#')
#        if n_W > n_B:
#            answer = n_B
#        else:
#           answer = n_W
        answer = 0
    else:
        S = rev_S[last_W:] #最初の黒の部分を全部消去
        S = S[::-1] #反転
#        print (S)
        n_W = S.count('.')
        n_B = S.count('#')
        if n_W > n_B:
            answer = n_B
        else:
            answer = n_W
print (answer)