#include <bits/stdc++.h>
#include "Alice.h"
using namespace std;
using ll = long long;
using vint = vector<int>;
using vll = vector<ll>;
using pint = pair<int, int>;
using vpint = vector<pint>;
#define fi first
#define se second
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
#define rep(i, n) for (int i = 0; i < (n); i++)
#define rrep(i, n) for (int i = (n)-1; i >= 0; i--)
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define RFOR(i, a, b) for (int i = (a)-1; i >= (b); i--)
const int BITS = 60000;
const int VBITS = 60;
const int n = 5000;
vpint Alice(){
ll x = setN(n);
bitset<BITS> b, bv(x);
rep(i, BITS/VBITS) {
b |= bv << i*VBITS;
}
vint p(n, -1);
int b_count = 0;
rrep(i, n) {
if (i == 0) continue;
int b_size = __lg(i);
int j = ((b >> b_count) << (BITS-b_size) >> (BITS-b_size)).to_ulong();
p[i] = j;
b_count += b_size;
}
vpint res;
rep(i, n) if (p[i] != -1)
res.push_back({p[i]+1, i+1});
return res;
}
#include <bits/stdc++.h>
#include "Bob.h"
using namespace std;
using ll = long long;
using vint = vector<int>;
using vll = vector<ll>;
using pint = pair<int, int>;
using vpint = vector<pint>;
#define fi first
#define se second
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
#define rep(i, n) for (int i = 0; i < (n); i++)
#define rrep(i, n) for (int i = (n)-1; i >= 0; i--)
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define RFOR(i, a, b) for (int i = (a)-1; i >= (b); i--)
const int BITS = 60000;
const int VBITS = 60;
const int n = 5000;
ll Bob(vpint V){
vint p(n, -1);
for (auto& [j, i]: V) p[i-1] = j-1;
bitset<BITS> b, b_rec;
int b_count = 0;
rrep(i, n) {
if (i == 0) continue;
int b_size = __lg(i);
int j = p[i];
if (j != -1) {
bitset<BITS> bv(j);
b |= bv << b_count;
bitset<BITS> rv((1 << b_size)-1);
b_rec |= rv << b_count;
}
b_count += b_size;
}
bitset<VBITS> xb, xb_rec;
rep(i, BITS/VBITS) {
rep(j, VBITS) {
int pos = i*VBITS+j;
if (b_rec[pos]) xb_rec[j] = b_rec[pos];
if (b_rec[pos]) xb[j] = b[pos];
}
}
if (xb_rec.count() != VBITS) return -1;
else {
ll x = xb.to_ullong();
return x;
}
}