これはインタラクティブ問題です。
$n$ 個の頂点を持つ無向グラフ $G$ が隠されています。このグラフは連結で、多重辺も自己ループも持たないことが保証されます。
次の形式の質問を最大 60 回行えます。
- $G$ の頂点集合の部分集合 $S$ を考えます。$S$ による誘導部分グラフには辺が何本ありますか。言い換えると、$G$ の辺のうち、両端点がともに $S$ に含まれるものは何本ありますか。
目標は、このグラフにオイラー閉路が存在するかどうかを判定することです。オイラー閉路とは、グラフの各辺をちょうど一度ずつ通り、始点と終点が同じ頂点である経路です。
グラフ $G$ はインタラクションの開始前に固定されることに注意してください。つまり、インタラクタは適応的ではありません。
入力
最初の行には、$G$ の頂点数を表す一つの整数 $n$($3 \le n \le 10^4$)が与えられます。$G$ の辺数は $10^5$ 以下であり、連結で、多重辺も自己ループも持たないことが保証されます。
インタラクション
まず整数 $n$ を含む行を読み込んで、インタラクションを開始します。
$G$ の $k$ 個の頂点 $x_1,x_2,\ldots,x_k$ による誘導部分グラフの辺数を求めるには、? k x1 x2 ... xk という形式の行を出力してください($0 \le k \le n$、$1 \le x_i \le n$、すべての $x_i$ は相異なります)。
それに対して、ジャッジプログラムはそのような辺の本数を表す一つの整数 $m$ を 1 行に出力します。
質問が不正な場合、または質問回数が 60 回を超えた場合、ジャッジプログラムは $-1$ を出力し、インタラクションを終了します。判定は「不正解」となります。ほかの判定を避けるため、ただちにプログラムを終了してください。
グラフにオイラー閉路が存在するか判定できたら、存在する場合は ! YES、存在しない場合は ! NO を 1 行に出力してください。
各行を出力した後は、改行を出力し、出力をフラッシュすることを忘れないでください。そうしないと「アイドル時間制限超過」と判定されます。
入出力例
入力 1
3 1 0
出力 1
? 2 1 2 ? 2 1 3 ! NO
注記
例の隠されたグラフは、$3$ 個の頂点と辺 $(2,1)$、$(2,3)$ を持つグラフです。