#include <bits/stdc++.h>
#include "doll.h"
using namespace std;
void make_switch(vector<int> out,int& S,vector<int>& X,vector<int>& Y){
if(out.size()==2){
X.push_back(out[0]);
Y.push_back(out[1]);
}
else if(out.size()==3){
X.push_back(--S);
Y.push_back(--S);
X.push_back(S+2);
Y.push_back(out[1]);
X.push_back(out[0]);
Y.push_back(out[2]);
}
else{
X.push_back(--S);
Y.push_back(--S);
X.push_back(out[0]);
Y.push_back(out[2]);
X.push_back(out[1]);
Y.push_back(out[3]);
}
}
void create_circuit(int M, vector<int> a) {
a.push_back(0);
a.insert(a.begin(),0);
int N = a.size();
vector<int> nxt(M+1,0);
vector<vector<int>> after(M+1);
for(int i=0;i<N-1;i++){
after[a[i]].push_back(a[i+1]);
}
int S=0;
vector<int> X, Y;
for(int i=0;i<=M;i++){
if(after[i].size()>1){
nxt[i]=--S;
make_switch(after[i],S,X,Y);
}
else if(after[i].size()==1)
nxt[i]=after[i].back();
}
answer(nxt, X, Y);
}