import java.util.*;

public class SolveB20 {
	Scanner in;
	public static void main(String[] args) {
		new SolveB20().solve();
		
	}
	void solve() {
		in = new Scanner(System.in);
		int n = in.nextInt();
		int dif = get(1, n);
		if (dif == n) {
			int[] a = new int[n];
			for (int i = 0; i < n; i++) {
				a[i] = i + 1;
			}
			answer(n, a);
			return;
		}
		if (dif == 1) {
			int[] a = new int[n];
			Arrays.fill(a, 1);
			answer(dif, a);
			return;
		}
		if (dif == 2) {
			int[] a = new int[n];
			a[0] = 1;
			for (int i = 1; i < n; i++) {
				if (get(i - 1, i) == 1) {
					a[i] = a[i - 1];
				} else {
					a[i] = 1 - a[i - 1];
				}
			}
			answer(dif, a);
			return;
		}
		while (true) {
		}
	}
	void answer(int n, int[] a) {
		System.out.println("Ready!");
		System.out.println(n);
		for (int i = 0; i < n; i++) {
			System.out.println(a[i] + " ");
		}
	}
	int get(int l, int r) {
		System.out.println("? " + l + " " + r);
		return in.nextInt();
	}
}