#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 1e5 + 5;
int n, m;
int p[N], sz[N];
void initSet() {
for (int u = 1; u <= n; u++) {
p[u] = u;
sz[u] = 1;
}
}
int findSet(int u) {
if (p[u] == u) return u;
return p[u] = findSet(p[u]);
}
void unionSet(int u, int v) {
u = findSet(u), v = findSet(v);
if (u == v) return;
if (sz[u] < sz[v]) swap(u, v);
p[v] = u;
sz[u] += sz[v];
}
bitset<N> dp;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
initSet();
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
unionSet(a, b);
}
dp[0] = 1;
for (int u = 1; u <= n; u++) {
if (u == findSet(u)) {
dp |= (dp << sz[u]);
}
}
for (int i = 1; i <= n; i++) cout << dp[i];
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAxZTUgKyA1OyAKCmludCBuLCBtOyAKCmludCBwW05dLCBzeltOXTsgCgp2b2lkIGluaXRTZXQoKSB7Cglmb3IgKGludCB1ID0gMTsgdSA8PSBuOyB1KyspIHsKCQlwW3VdID0gdTsgICAKCQlzelt1XSA9IDE7IAoJfQp9CgppbnQgZmluZFNldChpbnQgdSkgewoJaWYgKHBbdV0gPT0gdSkgcmV0dXJuIHU7IAoJcmV0dXJuIHBbdV0gPSBmaW5kU2V0KHBbdV0pOyAKfQoKdm9pZCB1bmlvblNldChpbnQgdSwgaW50IHYpIHsKCXUgPSBmaW5kU2V0KHUpLCB2ID0gZmluZFNldCh2KTsgIAoJaWYgKHUgPT0gdikgcmV0dXJuOyAgCglpZiAoc3pbdV0gPCBzelt2XSkgc3dhcCh1LCB2KTsgIAoJcFt2XSA9IHU7ICAKCXN6W3VdICs9IHN6W3ZdOyAKfQoKYml0c2V0PE4+IGRwOyAgICAKCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKCWNpbi50aWUobnVsbHB0cik7IAkKCWNpbiA+PiBuID4+IG07IAoKCWluaXRTZXQoKTsgICAKCglmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewoJCWludCBhLCBiOyAKCQljaW4gPj4gYSA+PiBiOyAKCQl1bmlvblNldChhLCBiKTsgCgl9CgoJZHBbMF0gPSAxOyAgIAoKCWZvciAoaW50IHUgPSAxOyB1IDw9IG47IHUrKykgewoJCWlmICh1ID09IGZpbmRTZXQodSkpIHsKCQkJZHAgfD0gKGRwIDw8IHN6W3VdKTsgCgkJfQoJfSAKCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNvdXQgPDwgZHBbaV07IAp9