#include <bits/stdc++.h>
int n;
char s[200010];
int c[2][200010];
typedef struct data {
  int a;
  int b;
} data;
FILE *in, *ans;
int tno;
int out(const char *s) {
  printf(s);
  return 0;
}
int outi(int i) {
  char s[128];
  sprintf(s, "%d\n", i);
  out(s);
  return 0;
}
int outll(long long l) {
  char s[128];
  sprintf(s, "%lld\n", l);
  out(s);
  return 0;
}
int geti() {
  int i;
  fscanf(in, "%d", &i);
  return i;
}
long long getll() {
  long long l;
  fscanf(in, "%lld", &l);
  return l;
}
int getstr(char *s) {
  fscanf(in, "%s", s);
  return 0;
}
int fnc() {
  memset(c, 0, sizeof(c));
  int n = geti();
  getstr(s);
  int i;
  for (i = 0; i < n; i++) {
    if (s[i] == '.') {
      c[0][i]++;
    } else {
      c[1][i]++;
    }
    if (i > 0) {
      c[0][i] += c[0][i - 1];
      c[1][i] += c[1][i - 1];
    }
  }
  int m = c[0][n - 1];
  if (m > c[1][n - 1]) {
    m = c[1][n - 1];
  }
  for (i = 1; i < n; i++) {
    int v = c[1][i] + c[0][n - 1] - c[0][i];
    if (m > v) {
      m = v;
    }
  }
  outi(m);
  return 0;
}
int main() {
  in = stdin;
  fnc();
  return 0;
}
