#include <bits/stdc++.h>
using namespace std;
#define ffor(i,o,f) for(int i = o; i < f; i++)
#define pb push_back
#define mp make_pair
#define all(a) (a).begin(), (a).end()
#define F first
#define S second
#define PI 3.14159265358979323846264338327950
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define endl '\n'
#define sz(x) ((int)(x).size())
typedef long long ll;
typedef pair < int, int > pii;
typedef vector < int > vi;
typedef vector < pii > vii;
typedef vector < vi > gi;
typedef vector < ll > vll;
typedef map < int, int > mii;
int t, n, m, u, v, groups;
const int tam = 1005;
gi g;
unordered_set < int > vis;
queue < int > q;
void bfs(int nd){
q.push(nd);
while(!q.empty()){
nd = q.front();
q.pop();
vis.insert(nd);
ffor(i, 0, sz(g[nd])){
if(vis.find(g[nd][i]) == vis.end()){
q.push(g[nd][i]);
}
}
}
}
int main()
{
g.assign(tam, vi ());
g[0].pb(2);
g[2].pb(0);
g[0].pb(3);
g[3].pb(0);
g[1].pb(3);
g[3].pb(1);
g[1].pb(6);
g[6].pb(1);
g[2].pb(3);
g[3].pb(2);
g[2].pb(4);
g[4].pb(2);
g[2].pb(5);
g[5].pb(2);
g[4].pb(5);
g[5].pb(4);
g[3].pb(7);
g[7].pb(3);
g[6].pb(7);
g[7].pb(6);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGZmb3IoaSxvLGYpCQkgICBmb3IoaW50IGkgPSBvOyBpIDwgZjsgaSsrKQojZGVmaW5lIHBiIAkJCQkgICBwdXNoX2JhY2sKI2RlZmluZSBtcCAgICAgICAgICAgICAgICAgbWFrZV9wYWlyCiNkZWZpbmUgYWxsKGEpICAgICAgICAgICAgIChhKS5iZWdpbigpLCAoYSkuZW5kKCkKI2RlZmluZSBGICAgICAgICAgICAgICAgICAgZmlyc3QKI2RlZmluZSBTICAgICAgICAgICAgICAgICAgc2Vjb25kCiNkZWZpbmUgUEkgCQkJCSAgIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTAKI2RlZmluZSBmYXN0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiNkZWZpbmUgZW5kbCAJCQkgICAnXG4nCiNkZWZpbmUgc3ooeCkgICAgICAgICAgICAgICgoaW50KSh4KS5zaXplKCkpCnR5cGVkZWYgbG9uZyBsb25nICAgICAgICAgIGxsOwp0eXBlZGVmIHBhaXIgPCBpbnQsIGludCA+ICBwaWk7CnR5cGVkZWYgdmVjdG9yIDwgaW50ID4gICAgIHZpOwp0eXBlZGVmIHZlY3RvciA8IHBpaSA+ICAgICB2aWk7CnR5cGVkZWYgdmVjdG9yIDwgdmkgPiAJICAgZ2k7CnR5cGVkZWYgdmVjdG9yIDwgbGwgPiAgICAgIHZsbDsKdHlwZWRlZiBtYXAgPCBpbnQsIGludCA+ICAgbWlpOwoKaW50IHQsIG4sIG0sIHUsIHYsIGdyb3VwczsKY29uc3QgaW50IHRhbSA9IDEwMDU7CmdpIGc7CnVub3JkZXJlZF9zZXQgPCBpbnQgPiB2aXM7CnF1ZXVlIDwgaW50ID4gcTsKCnZvaWQgYmZzKGludCBuZCl7CiAgICBxLnB1c2gobmQpOwogICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgbmQgPSBxLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICB2aXMuaW5zZXJ0KG5kKTsKICAgICAgICBmZm9yKGksIDAsIHN6KGdbbmRdKSl7CiAgICAgICAgICAgIGlmKHZpcy5maW5kKGdbbmRdW2ldKSA9PSB2aXMuZW5kKCkpewogICAgICAgICAgICAgICAgcS5wdXNoKGdbbmRdW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0KCmludCBtYWluKCkKewogICAgZy5hc3NpZ24odGFtLCB2aSAoKSk7CiAgICBnWzBdLnBiKDIpOwogICAgZ1syXS5wYigwKTsKICAgIGdbMF0ucGIoMyk7CiAgICBnWzNdLnBiKDApOwogICAgZ1sxXS5wYigzKTsKICAgIGdbM10ucGIoMSk7CiAgICBnWzFdLnBiKDYpOwogICAgZ1s2XS5wYigxKTsKICAgIGdbMl0ucGIoMyk7CiAgICBnWzNdLnBiKDIpOwogICAgZ1syXS5wYig0KTsKICAgIGdbNF0ucGIoMik7CiAgICBnWzJdLnBiKDUpOwogICAgZ1s1XS5wYigyKTsKICAgIGdbNF0ucGIoNSk7CiAgICBnWzVdLnBiKDQpOwogICAgZ1szXS5wYig3KTsKICAgIGdbN10ucGIoMyk7CiAgICBnWzZdLnBiKDcpOwogICAgZ1s3XS5wYig2KTsKfQo=