#include <bits/stdc++.h>
using namespace std;
const int N = 510;
int n, k;
int val[N], a[N];
bool mark[N];
pair<int, int> interact() {
  printf("? ");
  for (int i = 1; i <= k; ++i) printf("%d%c", a[i], " \n"[i == k]);
  fflush(stdout);
  int x, y;
  scanf("%d%d", &x, &y);
  val[x] = y;
  return {x, y};
}
void confirm(int x) {
  printf("! %d\n", x);
  fflush(stdout);
  exit(0);
}
int main() {
  scanf("%d%d", &n, &k);
  if (k == 1) confirm(1);
  for (int i = 1; i <= k; ++i) a[i] = i;
  auto res = interact();
  int anchor = res.first, same = 0, diff = 0;
  for (int i = 1; i <= k; ++i) {
    if (i == anchor) continue;
    a[i] = k + 1;
    res = interact();
    mark[i] = res.first == anchor;
    if (mark[i])
      same++;
    else
      diff++;
    a[i] = i;
  }
  mark[k + 1] = true;
  a[anchor] = k + 1;
  res = interact();
  int l = 0;
  if (res.second < val[anchor])
    l = mark[res.first] ? same : diff;
  else
    l = mark[res.first] ? diff : same;
  confirm(l + 1);
  return 0;
}
