#include #define rep(i, a) rep2 (i, 0, a) #define rep2(i, a, b) for (int i = (a); i < (b); i++) #define repr(i, a) repr2 (i, 0, a) #define repr2(i, a, b) for (int i = (b) - 1; i >= (a); i--) #define chmin(a, b) ((b) < a && (a = (b), true)) #define chmax(a, b) (a < (b) && (a = (b), true)) #define rng(a) (a).begin(), (a).end() using namespace std; typedef long long ll; int n; int C[555][555]; int a[555]; int comp(int i, int j) { cout << "?"; cout << " " << a[i] + 1 << " " << a[j] + 1; rep (i, n - 1) cout << " 0 0"; cout << endl; char str[2]; scanf("%s", str); int res; if (str[0] == '<') res = -1; else if (str[1] == '=') res = 0; else res = 1; rep (i, n - 1) scanf("%s", str); return res; } int main() { cin >> n; rep (i, n) a[i] = i; rep (i, n) { rep2 (j, i, n) { if (comp(a[i], a[j]) > 0) { swap(a[i], a[j]); } } } cout << "!"; rep (i, n) cout << " " << a[i] << endl; return 0; }