open System

// prelude
let readStr () = stdin.ReadLine()

let readInt () = stdin.ReadLine() |> int
let readInts () = stdin.ReadLine().Split() |> Array.map int

let pair = function
| [|a; b|] -> (a, b)
| _ -> failwith "owatta"

let triple = function
| [|a; b; c|] -> (a, b, c)
| _ -> failwith "owatta"

let inc n = n + 1
let dec n = n - 1

let inline flip f a b = f b a
let rec fix f = fun x -> (f (fix f)) x

module Option =
  let getOr defaultValue = function
  | Some x -> x
  | None -> defaultValue

module Array =
  let modify (arr: _ []) i f =
    arr.[i] <- f arr.[i]

module Array2D =
  let modify (arr: _ [,]) i j f =
    arr.[i, j] <- f arr.[i, j]

// start
let N=readInt()
let S=readStr().ToCharArray()

let s=
  let s =
    S
    |> Array.toSeq
    |> Seq.pairwise
    |> Seq.fold (fun (h::t) (a, b) ->
      if a=b then (h+1)::t else 1::h::t
    ) [1]
    |> List.rev
    |> List.toArray
  s.[(if S.[0]='.' then 1 else 0)..(s.Length - if (Array.last S)='#' then 2 else 1)]
  |> Array.toSeq
  |> Seq.chunkBySize 2
  |> Seq.collect (
    function
    | [|a; b|] -> [(a, b)]
    | _ -> []
  )
  |> Seq.sumBy (fun (a, b) -> min a b)

printfn "%A" s