#include <bits/stdc++.h>
using namespace std;
const int N = 200200;
int n, a[N], k;
map<int, int> cnt;
pair<int, int> ask(set<int> &pos) {
  cout << "? ";
  for (int x : pos) cout << x << ' ';
  cout << endl;
  int id, val;
  cin >> id >> val;
  a[id] = val;
  return {id, val};
}
set<int> g[N];
int main() {
  cin >> n >> k;
  set<int> pos;
  for (int i = 1; i <= k; ++i) pos.insert(i);
  int result = -1;
  for (int i = 1; i <= k + 1; ++i) {
    pair<int, int> w = ask(pos);
    int id = w.first, val = w.second;
    cnt[val]++;
    pos.erase(i);
    int d = (i - 1);
    if (d == 0) d = k + 1;
    pos.insert(d);
  }
  int res = 0;
  for (auto &x : cnt) {
    if (x.second > res) res = x.second;
  }
  cout << "! ";
  if (res == cnt.begin()->second)
    cout << k - res + 1;
  else
    cout << res;
  cout << endl;
  return 0;
}
