#include<bits/stdc++.h>
using ll  = long long;
#define int ll
#define rep(i,n) for(int i=0;i<n;i++)
#define loop(i,s,n) for(int i=s;i<n;i++)
#define erep(e,v) for(auto && e :v)
#define all(in) in.begin(), in.end()
#define MP make_pair
#define INF (sizeof(int) == 4 ? (int)1e9:(int)1e18)
#define EPS 0.0000000001
using namespace std;
template<class T, class S> void cmin(T &a, const S &b) { if (a > b)a = b; }
template<class T, class S> void cmax(T &a, const S &b) { if (a < b)a = b; }
template<typename Head, typename Value> auto vectors(const Head &head, const Value &v) { return vector<Value>(head, v); }
template<typename Head, typename... Tail> auto vectors(Head x, Tail... tail) { auto inner = vectors(tail...); return vector<decltype(inner)>(x, inner); }
template<class T> void join(T a){for(auto itr :a){if(itr != *a.begin())cout << " "; cout << itr;} }
using ld  = long double;
using pii = pair<int,int>;
using piii = pair<int,pii>;
int W,H;
int dx[]={0,0,1,-1}, dy[]={1,-1,0,0};
bool valid(int x,int y){return (0<=x&&x<W)&&(0<=y&&y<H);}
signed main(){
    int n; cin >> n;
    int sum = 0;
    string s; cin >> s;
    for(int i = 1; i < n-1; ++i){
        if(s[i-1] != s[i] and s[i] != s[i+1]){
            s[i] = s[i+1];
            ++sum;
        }
    }
    //cout << sum  << endl;
    vector<int>v;
    int cnt = 1;
    char now = s.front();
    for(int i = 1; i < n;++i){
        if(now == s[i]){cnt++;continue;}
        else{
            if(v.empty() and now == '.'){
                cnt = 1; now = s[i];
                continue;
            }
            v.push_back(cnt);
            cnt = 1;
            now = s[i];
        }
    }
    if(now == '.')v.push_back(cnt);
    for(int i = 0; i+1 < v.size() ;i +=2) sum += min(v[i],v[i+1]);
    cout << sum << endl;
}


