#include "Alice.h"
#include "bits/stdc++.h"
#define ff first
#define ss second
#define pp pop_back
#define ll long long
#define pb push_back
#define ls(v) (int)v.size()
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define wr cout << "------------------------" << endl
using namespace std;
vector<pair<int,int>> Alice(){
int n = 5000;
int k = setN(n);
int x = (k + n - 1) / n;
int y = k % n == 0 ? n : k % n;
int xy = (x + y) % n;
vector<pair<int, int>> v;
int cnt = 0, p, q, r;
for(int i = 1;i<=n;++i){
if(i == x or i == y or i == xy) continue;
cnt += 1;
if(cnt <= 1666) v.pb({x, i}), p = i;
else if(cnt <= 3331) v.pb({y, i}), q = i;
else v.pb({xy, i}), r = i;
}
v.pb({q, r});
v.pb({r, p});
return v;
}
#include "Bob.h"
#include "bits/stdc++.h"
#define ff first
#define ss second
#define pp pop_back
#define ll long long
#define pb push_back
#define ls(v) (int)v.size()
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define wr cout << "------------------------" << endl
using namespace std;
long long Bob(vector<pair<int,int>> v){
int n = 5000;
vector<int> deg(n + 1, 0), ch(n + 1, 0);
for(auto [a, b] : v){
if(!deg[a]) ch[a] = b;
if(!deg[b]) ch[b] = a;
deg[a] += 1;
deg[b] += 1;
}
int p = -1, q;
for(int i = 1;i<=n;++i){
if(deg[i] <= 10) continue;
if(~p) q = i;
else p = i;
}
int x, y, xy;
x = y = xy = -1;
int pc = ch[p];
if(pc <= 1666) x = p;
else if(pc <= 3331) y = p;
else xy = p;
int qc = ch[q];
if(qc <= 1666) x = q;
else if(qc <= 3331) y = q;
else xy = q;
if(x == -1) x = (xy - y + n) % n;
else if(y == -1) y = (xy - x + n) % n;
return (x - 1) * n + y;
}