#include <iostream>
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> a;
//aa
void initialize(int n){
a.resize(n);
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(j == i) continue;
a[i].push_back(j);
}
}
}
void dfs(int v, vector<bool>& vis){
vis[v] = true;
for(int i = 0; i < a[v].size(); i++){
if(!vis[a[v][i]]) dfs(a[v][i], vis);
}
}
int hasEdge(int u, int v){
for(int i = 0; i < a[u].size(); i++){
if(a[u][i] == v) a[u].erase(a[u].begin()+i);
}
for(int i = 0; i < a[v].size(); i++){
if(a[v][i] == u) a[v].erase(a[v].begin()+i);
}
vector<bool> vis(a.size(), false);
dfs(0, vis);
bool t = false;
for(int i = 0; i < a.size(); i++){
if(!vis[i]) t = true;
}
if(t){
a[u].push_back(v);
a[v].push_back(u);
return 1;
}
return 0;
}