#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define FOR(i,a,b) for(ll i=(a);i<(b);++i) #define ALL(v) (v).begin(), (v).end() #define p(s) cout<<(s)< void vprint(T &V){ for(auto v : V){ cout << v << " "; } cout << endl; } ll N; vector A; bool is_kadomatsu(ll i, ll j, ll k){ if(A[i]==A[j] || A[j]==A[k]) return false; if(A[i]A[j] && A[j]>A[k]) return false; return true; } ll memo[1<<12]; // win : flag // lose : -1 ll can_win(ll f){ if(memo[f]!=0) return memo[f]; FOR(i, 0, N){ FOR(j, i+1, N){ FOR(k, j+1, N){ if(f>>i & 1 || f>>j & 1 || f>>k & 1) continue; // 使用済みをもう1度使おうとした場合 if(!is_kadomatsu(i, j, k)) continue; ll f2 = (1<> N; A.resize(N); FOR(i, 0, N){ cin >> A.at(i); } ll f = can_win(0); if(f==-1){ p(-1); }else{ vector answer; FOR(i, 0, 12){ if(f>>i & 1){ answer.push_back(i); } } cout << answer[0] << " " << answer[1] << " " << answer[2] << endl; } return 0; }