#include using namespace std; //#define int long long typedef pairpint; typedef vectorvint; typedef vectorvpint; #define pb push_back #define mp make_pair #define fi first #define se second #define all(v) (v).begin(),(v).end() #define rep(i,n) for(int i=0;i<(n);i++) #define reps(i,f,n) for(int i=(f);i<(n);i++) #define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++) templatevoid chmin(T &t,U f){if(t>f)t=f;} templatevoid chmax(T &t,U f){if(t>i&1)cnt++; bool ret; int p=(cnt/3)&1; if(!p){ ret=false; rep(i,N)reps(j,i+1,N)reps(k,j+1,N){ if(b>>i&1)continue; if(b>>j&1)continue; if(b>>k&1)continue; if(K[i]==K[j]||K[j]==K[k]||K[k]==K[i])continue; if(max(max(K[i],K[j]),K[k])!=K[j]&&min(min(K[i],K[j]),K[k])!=K[j])continue; int bb=b|(1<>i&1)continue; if(b>>j&1)continue; if(b>>k&1)continue; if(K[i]==K[j]||K[j]==K[k]||K[k]==K[i])continue; if(max(max(K[i],K[j]),K[k])!=K[j]&&min(min(K[i],K[j]),K[k])!=K[j])continue; int bb=b|(1<>N;rep(i,N)cin>>K[i]; memset(dp,-1,sizeof(dp)); if(!dfs(0))puts("-1"); rep(i,N)reps(j,i+1,N)reps(k,j+1,N){ int b=(1<