#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; template istream& operator >> (istream& is, vector& vec){for(T& val: vec) is >> val; return is;} template istream& operator , (istream& is, T& val){ return is >> val;} template ostream& operator << (ostream& os, vector& vec){for(int i=0; i ostream& operator , (ostream& os, T& val){ return os << " " << val;} template ostream& operator >> (ostream& os, T& val){ return os << " " << val;} bool is_kadomatsu_sequence(vector x){ if(x.size() != 3) return false; if(x[0] < x[1] && x[1] > x[2] && x[2] != x[0]) return true; if(x[0] > x[1] && x[1] < x[2] && x[2] != x[0]) return true; return false; } int main(){ int n; cin >> n; vector k(n); cin >> k; vector ans; vector memo(1< dfs = [&](int s, int t){ if(memo[s] != 0) return memo[s]; vector arr = {}; int val = -t; for(int a=0; a>a)&1) == 0) continue; for(int b=a+1; b>b)&1) == 0) continue; for(int c=b+1; c>c)&1) == 0) continue; if(val == t) break; if(is_kadomatsu_sequence({k[a],k[b],k[c]})){ int tmp = dfs(s^((1<