#include <bits/stdc++.h>
using namespace std;
int ans[200010];
void solve(int l, int r) {
  if (l > r) return;
  cout << "? " << l + 1 << " " << r + 1 << endl;
  int x, f;
  cin >> x >> f;
  int st = r - f + 1;
  int en = l + f - 1;
  if (st <= en) {
    for (int i = st, ThxDem = en + 1; i < ThxDem; ++i) ans[i] = x;
    solve(l, st - 1);
    solve(en + 1, r);
    return;
  }
  int m = (l + r) / 2;
  solve(l, m);
  solve(m + 1, r);
}
int main() {
  int n;
  cin >> n;
  solve(0, n - 1);
  cout << "! ";
  for (int i = 0, ThxDem = n; i < ThxDem; ++i) cout << ans[i] << " ";
  cout << endl;
}
