#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define D long long #define U unsigned using namespace std; D n, m,a, b, d, e, x, y, z; D i, j, k; char c,f; string s; bool f1; D p[500]; int main() { cin >> a; iota(p, p + a, 1); f = 0; for (i = 0; i < a * 2;i++){ s = ""; s +="?"; for (j = f, k = 0; j < a - 1; j += 2,k+=2) { s += " " + to_string(p[j]) +" " + to_string(p[j + 1]); } for (; k < a * 2; k++) { s+= " 0"; } cout << s << endl; f1 = false; for (j = f,k=0; j < a-1; j+=2,k++) { cin >> c; if (c == '>') { swap(p[j], p[j + 1]); f1 = true; } } for (; k < a; k++) cin >> c; if (!f1) break; f ^= 1; } cout << "!"; for (i = 0; i < a; i++) { cout <<" "<< p[i]; } cout << endl; }