#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n;
char s[N];
char tmp[N];
char ans[N];
void init(char t[]) {
  for (int i = 0; i < n; i++) {
    t[i] = '0';
  }
}
bool check(int max_dep) {
  init(tmp);
  int dep = 0;
  int need = 0;
  int dep2 = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] == '(') {
      ++dep;
      if (dep > max_dep) {
        ++need;
        --dep;
        tmp[i] = '1';
        if (++dep2 > max_dep) return false;
      }
    } else {
      if (need) {
        --need;
        tmp[i] = '1';
        if (--dep2 < 0) return false;
      } else {
        if (--dep < 0) return false;
      }
    }
  }
  if (need) {
    return false;
  }
  return true;
}
void solve() {
  int dep = 0;
  int max_dep = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] == '(') {
      ++dep;
      if (max_dep < dep) {
        max_dep = dep;
      }
    } else {
      --dep;
    }
  }
  int l = 0;
  int r = max_dep;
  int m;
  while (l <= r) {
    m = (l + r) / 2;
    if (check(m)) {
      copy(tmp, tmp + n, ans);
      r = m - 1;
    } else {
      l = m + 1;
    }
  }
}
int main() {
  scanf("%d", &n);
  scanf("%s", s);
  init(ans);
  ans[n] = '\0';
  solve();
  puts(ans);
  return 0;
}
