#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 9;
int a[N];
void solve(int l, int r) {
  if (r < l) return;
  cout << "? " << l << " " << r << endl;
  int x, f;
  cin >> x >> f;
  if (r - f + 1 <= l + f - 1) {
    fill(a + r - f + 1, a + l + f, x);
    solve(l, r - f);
    solve(l + f, r);
  } else {
    int mid = (l + r) / 2;
    solve(l, mid);
    solve(mid + 1, r);
  }
}
int32_t main() {
  int n;
  cin >> n;
  solve(1, n);
  cout << "! ";
  for (int i = 1; i <= n; i++) cout << a[i] << " ";
  cout << endl;
  return 0;
}
