#include <bits/stdc++.h>
using namespace std;
const int N = 10e5 + 5;
int a[N];
pair<int, int> ask(int l, int r) {
  cout << "? " << l << " " << r << "\n";
  int x, y;
  cin >> x >> y;
  return {x, y};
}
void solve(int l, int r) {
  if (l > r) return;
  pair<int, int> rs = ask(l, r);
  int x = rs.first;
  int f = rs.second;
  int l1 = r + 1 - f, r1 = l - 1 + f;
  if (l1 <= r1) {
    for (int i = l1; i <= r1; i++) a[i] = x;
    solve(l, l1 - 1);
    solve(r1 + 1, r);
  } else {
    int md = (l + r) / 2;
    solve(l, md);
    solve(md + 1, r);
  }
}
int main() {
  int n;
  cin >> n;
  solve(1, n);
  cout << "! ";
  for (int i = 1; i <= n; i++) cout << a[i] << " ";
  return 0;
}
