#include <bits/stdc++.h>
using namespace std;
long long M;
long long mul(long long a, long long b) { return ((a % M) * (b % M)) % M; };
long long sub(long long a, long long b) { return ((a % M) - (b % M) + M) % M; };
long long pwr(long long a, long long b) {
  if (b == 0) return 1;
  if (b == 1) return a;
  if (a == 1) return 1;
  long long p1 = pwr(a, b / 2), p2 = mul(p1, p1);
  if (b % 2) return mul(p2, a);
  return p2;
};
long long add(long long a, long long b) { return (a % M + b % M) % M; };
long long divi(long long a, long long b) {
  if (a < b) return 0LL;
  return mul(a, pwr(b, M - 2));
};
bool isRev(int a[], int l, int r) {
  while (l < r) {
    if (a[r] != l || a[l] != r) return false;
    l++;
    r--;
  }
  return true;
}
int p[100005];
int main() {
  map<int, int> ct, ct2;
  int n, m, t = 1;
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    int a;
    cin >> a;
    ct[a]++;
    ct2[ct[a]]++;
    if (ct[a] == t && ct2[t] == n) {
      cout << 1;
      t++;
    } else
      cout << 0;
  }
  return 0;
}
