#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  string s;
  cin >> s;
  stack<int> st;
  st.push(0);
  vector<int> v(s.size(), 0);
  for (int i = 1; i < s.size(); i++) {
    if (s[i] == '(')
      st.push(i);
    else {
      int t = st.top();
      v[t] = v[t] + 1;
      st.pop();
      if (!st.empty()) v[st.top()] = max(v[st.top()], v[t]);
    }
  }
  vector<pair<int, int> > f;
  for (int i = 0; i < n; i++) f.push_back({v[i], i});
  sort(f.begin(), f.end());
  set<int> se;
  for (int i = 0; i < n; i++) se.insert(i);
  vector<int> sol(n, 0);
  int col = 0;
  set<int>::iterator it, it1;
  for (int i = 0; i < n; i++) {
    if (f[i].first == 0) {
      continue;
    }
    col = f[i].first % 2;
    it = se.find(f[i].second);
    sol[*it] = col;
    it1 = it;
    it++;
    se.erase(it1);
    sol[*it] = col;
    se.erase(it);
  }
  for (int i = 0; i < n; i++) cout << sol[i];
  return 0;
}
