#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int n; vector k; vector > memo; tuple solve(bitset<12> bs) { if(get<0>(memo[bs.to_ulong()]) != -2) return memo[bs.to_ulong()]; for(int a=0; a k[c]) || (k[a] > k[b] && k[b] < k[c]))) continue; bs[a] = bs[b] = bs[c] = true; auto x = solve(bs); bs[a] = bs[b] = bs[c] = false; if(get<0>(x) == -1) return memo[bs.to_ulong()] = make_tuple(a, b, c); } } } return memo[bs.to_ulong()] = make_tuple(-1, -1, -1); } int main() { cin >> n; k.resize(n); for(int i=0; i> k[i]; memo.assign(1<(x) == -1) cout << -1 << endl; else cout << get<0>(x) << ' ' << get<1>(x) << ' ' << get<2>(x) << endl; return 0; }