#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
int t = -1;
vector<int> ans1 , ans2;
int create(vector<int> a){
vector<int> b , c;
bool w = 1;
for(int i = 0; i < int(a.size()); i++){
if(i != 0 && a[i] != a[i-1])w = 0;
if(i%2 == 0){
b.push_back(a[i]);
}else{
c.push_back(a[i]);
}
}
if(w)return a[0];
ans1.push_back(0);
ans2.push_back(0);
int o = -t-1 , u = t;
t--;
int e = create(b), f = create(c);
ans1[o] = e;
ans2[o] = f;
return u;
}
vector<int> suf(vector<int> a){
if(a.size() == 1)return a;
vector<int> b , c;
for(int i = 0; i < int(a.size())/2; i++)b.push_back(a[i]);
for(int i = int(a.size())/2; i < int(a.size()); i++)c.push_back(a[i]);
b = suf(b);
c = suf(c);
vector<int> d;
for(int i = 0; i < int(a.size())/2; i++){
d.push_back(b[i]);
d.push_back(c[i]);
}
return d;
}
void create_circuit(int M, std::vector<int> A) {
int w = 1;
vector<int> B(A.size() , 0);
while(w < int(B.size())+1)w*=2;
while(int(B.size())+1 < w)B.push_back(-1);
B.push_back(0);
B = suf(B);
int j = 0;
for(int i = 0; i < int(B.size());i++){
if(B[i] == 0){
B[i] = A[j];
j++;
}
}
create(B);
vector<int> c(M+1 , -1);
answer(c , ans1 , ans2);
}