#include <bits/stdc++.h>
using namespace std;
const long long int N = 1e6 + 9;
const long long int inf = 1e14;
const long long int MOD = 1e9 + 7;
const long long int mod = 1e9 + 7;
const double PI = acos(-1);
long long int powm(long long int a, long long int b) {
  a = a % mod;
  long long int res = 1;
  while (b) {
    if (b & 1) res = (res * a) % mod;
    a = (a * a) % mod;
    b >>= 1;
  }
  return res;
}
int main() {
  long long int t = 1;
  while (t--) {
    long long int n;
    cin >> n;
    set<long long int> a, b;
    for (int i = 1; i <= n; i++) {
      a.insert(i);
      b.insert(i);
    }
    long long int an[n];
    while (a.size() != 1) {
      long long int v1 = *a.begin(), v2 = *(++a.begin());
      long long int x1, x2;
      cout << "? " << v1 << " " << v2 << '\n';
      cin >> x1;
      cout << "? " << v2 << " " << v1 << '\n';
      cin >> x2;
      if (x2 > x1) {
        an[v2 - 1] = x2;
        a.erase(v2);
        b.erase(x2);
      } else {
        an[v1 - 1] = x1;
        a.erase(v1);
        b.erase(x1);
      }
    }
    long long int ind = *a.begin(), va = *b.begin();
    an[ind - 1] = va;
    cout << "! ";
    for (int i = 0; i < n; i++) {
      cout << an[i] << " ";
    }
    cout << '\n';
  }
}
