#include <bits/stdc++.h>
using namespace std;
unordered_map<long long, long long> vis;
struct MyStruct {
  long long v, f;
} a[502];
int main() {
  long long n, k;
  scanf("%lld%lld", &n, &k);
  long long pos, v;
  for (long long i = 1; i <= k + 1; i++) {
    printf("?");
    long long cnt = 0;
    for (long long j = 1; j <= n; j++) {
      if (j != i) printf(" %lld", j), cnt++;
      if (cnt == k) break;
    }
    printf("\n");
    fflush(stdout);
    scanf("%lld%lld", &pos, &v);
    a[pos].v = v;
    a[pos].f = 1;
    vis[v]++;
  }
  long long maxn = -1;
  for (long long i = 1; i <= n; i++) {
    maxn = max(maxn, a[i].v);
  }
  printf("! %lld\n", vis[maxn]);
  return 0;
}
