#include #include #include #include #include #include using namespace std; template void show(T t) { for (auto e : t) { printf("%3d ", e); } cout << endl; } int main() { int n, m, a, b; cin >> n >> m; vector> edge(n, set()); for (int i = 0; i < m; i++) { cin >> a >> b; edge[a].insert(b); edge[b].insert(a); } vector buy(n, -1); for (int i = n - 1; i >= 0; i--) { // printf("i %d, buy %d\n", i, buy[i]); if (buy[i] <= 0) { buy[i] = 0; for (auto val : edge[i]) { buy[val] = 1; } } else if (buy[i] == 1) { for (auto it = edge[i].begin(); it != edge[i].end();) { edge[*it].erase(i); if (edge[i].count(*it)) { it = edge[i].erase(it); } else { it++; } } } } bool leading_zero = true; for (int i = n - 1; i >= 0; i--) { if (leading_zero) { if (buy[i] == 0) { continue; } else { leading_zero = false; } } cout << buy[i]; } cout << endl; return 0; }