#include <bits/stdc++.h>
using namespace std;
long long mod = pow(10, 9) + 7;
vector<long long> ans(2000000);
pair<long long, long long> query(long long l, long long r) {
  cout << "? " << l << " " << r << endl;
  long long x;
  cin >> x;
  if (x == -1) {
    exit(0);
  }
  long long f;
  cin >> f;
  return {x, f};
}
void solve(long long l, long long r) {
  if (l > r) {
    return;
  }
  long long x, f;
  pair<long long, long long> p = query(l, r);
  x = p.first;
  f = p.second;
  long long a = l + f - 1;
  long long b = r - f + 1;
  if (b <= a) {
    for (long long i = b; i <= a; ++i) {
      ans.at(i) = x;
    }
    solve(l, b - 1);
    solve(a + 1, r);
  } else {
    long long mid = (l + r) / 2;
    solve(l, mid);
    solve(mid + 1, r);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n;
  cin >> n;
  solve(1, n);
  cout << "! ";
  for (long long i = 1; i <= n; ++i) {
    cout << ans.at(i) << " ";
  }
  cout << endl;
  return 0;
}
