#include<bits/stdc++.h>
#include "scales.h"
using namespace std;
using ll = long long;
#define fi first
#define se second
bool arr[7][7];
vector <int> vec;
ll qq=0;
/*
int getLightest(int x, int y, int z){
// return index (1..6) of the lightest among x,y,z
qq++;
int ax = vec[x-1], ay = vec[y-1], az = vec[z-1];
int mn = min({ax, ay, az});
if (ax == mn) return x;
if (ay == mn) return y;
return z;
}
int getHeaviest(int x, int y, int z){
// return index (1..6) of the heaviest among x,y,z
qq++;
int ax = vec[x-1], ay = vec[y-1], az = vec[z-1];
int mx = max({ax, ay, az});
if (ax == mx) return x;
if (ay == mx) return y;
return z;
}
int getMedian(int x, int y, int z){
// return index (1..6) of the median among x,y,z
qq++;
int ax = vec[x-1], ay = vec[y-1], az = vec[z-1];
// median by comparisons
if ((ax <= ay && ax >= az) || (ax >= ay && ax <= az)) return x;
if ((ay <= ax && ay >= az) || (ay >= ax && ay <= az)) return y;
return z;
}
*/
vector <bool> vis(7);
void dfs(int node){
if (!vis[node]){
vis[node]=true;
for (int i=1; i<7; i++){
if (arr[node][i]){
dfs(i);
for (int j=1; j<7; j++){
if (arr[i][j]){
arr[node][j]=true;
}
}
}
}
}
}
bool cmp(int x, int y){
for (int i=1; i<7; i++){vis[i]=false;}
for (int i=1; i<7; i++){dfs(i);}
if (arr[y][x]){return true;}
if (arr[x][y]){return false;}
for (int i=1; i<7; i++){
if (arr[x][i]==1){
int ans = getMedian(x,y,i);
if (ans==y){
arr[x][y]=1;
arr[y][i]=1;
return false;
}
if (ans==x){
arr[y][x]=1;
arr[y][i]=1;
return true;
}
if (ans==i){
arr[i][y]=1;
arr[x][y]=1;
return false;
}
}
if (arr[i][x]==1){
int ans = getMedian(x,y,i);
if (ans==y){
arr[i][y]=1;
arr[y][x]=1;
return true;
}
if (ans==x){
arr[i][y]=1;
arr[x][y]=1;
return false;
}
if (ans==i){
arr[y][i]=1;
arr[y][x]=1;
return true;
}
}
if (arr[y][i]==1){
int ans = getMedian(x,y,i);
if (ans==y){
arr[x][y]=1;
arr[x][i]=1;
return false;
}
if (ans==x){
arr[y][x]=1;
arr[x][i]=1;
return true;
}
if (ans==i){
arr[y][x]=1;
arr[i][x]=1;
return true;
}
}
if (arr[i][y]==1){
int ans = getMedian(x,y,i);
if (ans==y){
arr[i][x]=1;
arr[y][x]=1;
return true;
}
if (ans==x){
arr[i][x]=1;
arr[x][y]=1;
return false;
}
if (ans==i){
arr[x][i]=1;
arr[x][y]=1;
return true;
}
}
}
for (int i=1; i<7; i++){
if (i!=x && i!=y){
int ans = getHeaviest(x,y,i);
if (ans==i){
arr[i][x]=1;
arr[i][y]=1;
ans = getLightest(x,y,i);
if (ans==x){arr[y][x]=1;return true;}
if (ans==y){arr[x][y]=1;return false;}
}
if (ans==x){
arr[x][i]=1;
arr[x][y]=1;
return false;
}
if (ans==y){
arr[y][i]=1;
arr[y][x]=1;
return true;
}
}
}
cout<<"broke";
return false;
}
void init(int T){}
/*
void answer(vector <int> v){
for (auto x : v){cout<<x<<' ';}
cout<<"\n";
for (int i=1; i<7; i++){
for (int j=1; j<7; j++){
cout<<arr[i][j]<<' ';
}
cout<<"\n";
}
}
*/
void orderCoins(){
for (int i=0; i<7; i++){
for (int j=0; j<7; j++){
arr[i][j]=false;
}
}
vector <int> v = {1,2,3,4,5,6};
cmp(1,2);
cmp(4,5);
stable_sort(v.begin(),v.end(), cmp);
stable_sort(v.begin(),v.end(), cmp);
stable_sort(v.begin(),v.end(), cmp);
answer(v.data());
}