#include #include #include using namespace std; vector k; vector removed; size_t index1; size_t index2; size_t index3; bool turn() { for (size_t i1 = 0; i1 < k.size() - 2; ++i1) { if (removed[i1]) { continue; } for (size_t i2 = i1 + 1; i2 < k.size() - 1; ++i2) { if (removed[i2]) { continue; } for (size_t i3 = i2 + 1; i3 < k.size(); ++i3) { if (removed[i3]) { continue; } if (k[i1] != k[i2] && k[i2] != k[i3] && ( max(k[i1], max(k[i2], k[i3])) == k[i2] || min(k[i1], min(k[i2], k[i3])) == k[i2])) { removed[i1] = true; removed[i2] = true; removed[i3] = true; bool win = !turn(); removed[i1] = false; removed[i2] = false; removed[i3] = false; if (win) { index1 = i1; index2 = i2; index3 = i3; return true; } } } } } return false; } int main() { int n; cin >> n; k.resize(n); removed.resize(n); for (int i = 0; i < n; ++i) { cin >> k[i]; } bool win = turn(); if (win) { cout << index1 << " " << index2 << " " << index3 << endl; } else { cout << -1 << endl; } return 0; }