N = int(input())
S = input()
S = [0 if si == "#" else 1 for si in S]
def taskC(N,S):
    Wlist = []
    Blist = []
    Wcount = 0
    Bcount = 0
    S0 = S[0]
    for si in S:
        if si == 0:
            Bcount += 1
            if Wcount > 0:
                Wlist = [Wcount] + Wlist
                Wcount = 0
        else:
            Wcount += 1
            if Bcount >0:
                Blist += [Bcount]
                Bcount = 0
    Wlist = ([Wcount] + Wlist) if Wcount > 0 else Wlist
    Blist = (Blist + [Bcount]) if Bcount > 0 else Blist
    if len(Wlist)+len(Blist) <= 1:
        return 0
    if len(Wlist)>len(Blist):
        Wlist = Wlist[:-1]
        S0 = 0
    elif len(Blist)>len(Wlist):
        Blist = Blist[:-1]
        S0 = 0
    Wsum = [0]
    Bsum = [0]
    for ind in range(len(Wlist)):
        Wsum = [ Wsum[0] + Wlist[ind]] + Wsum
        Bsum += [ Bsum[-1] + Blist[ind]]
    ret = min([Wsum[i]+Bsum[i] for i in range(len(Wsum))])
    if S0 == 0:
        ret2 = min([Wsum[i]+Bsum[i+1] for i in range(len(Wsum)-1)])
        return min(ret, ret2)
    else:
        ret2 = min([Wsum[i+1]+Bsum[i] for i in range(len(Wsum)-1)])
        return min(ret, ret2)
print(taskC(N,S))
