#include <bits/stdc++.h>
using namespace std;
const long long mod = pow(10, 9) + 7;
const long long INF = 1LL << 60;
template <class T>
bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
int divCeil(int A, int B) { return (A + (B - 1)) / B; }
long long divCeil(long long A, int B) { return (A + (B - 1)) / B; }
long long divCeil(int A, long long B) { return (A + (B - 1)) / B; }
long long divCeil(long long A, long long B) { return (A + (B - 1)) / B; }
int main() {
  int N;
  string S;
  cin >> N >> S;
  S += "#";
  int b = 0, w = 0;
  vector<int> B, W;
  int n = 0;
  char C0 = '.';
  for (int i = 0; i < N + 1; i++) {
    if (C0 == S.at(i)) {
      if (S.at(i) == '#')
        b++;
      else
        w++;
    } else {
      if (S.at(i) == '#') {
        if (b > 0) {
          B.push_back(b);
          W.push_back(w);
          n++;
        }
        b = 1;
        w = 0;
      } else
        w++;
    }
    C0 = S.at(i);
  }
  vector<vector<int>> dp(n, vector<int>(2, 10000000));
  int ans = 0;
  if (n > 0) {
    dp.at(0).at(0) = B.at(0);
    dp.at(0).at(1) = W.at(0);
    for (int i = 1; i < n; i++) {
      dp.at(i).at(0) = dp.at(i - 1).at(0) + W.at(i);
      dp.at(i).at(1) =
          min(dp.at(i - 1).at(0) + B.at(i), dp.at(i - 1).at(1) + W.at(i));
    }
    ans = min(dp.at(n - 1).at(0), dp.at(n - 1).at(1));
  }
  cout << ans << endl;
}
