import java.util.ArrayList; import java.util.Scanner; import java.util.HashMap; import java.util.HashSet; public class Main { static void Solve() { var M = 30; var x = 1000000000; for (var i = 0; i < M; i++) { System.out.println(x); var inp = InputNum(); if (inp == 0) x /= 2; else return; } return; } public static void main(String[] args) { Solve(); sc.close(); } static Scanner sc = new Scanner(System.in); static StringBuilder stringBuilder = new StringBuilder(); static String el = System.getProperty("line.separator"); // #region 入出力 static long InputNum() { return sc.nextLong(); } static ArrayList InputNums(long n) { ArrayList li = new ArrayList<>(); for (var i = 0; i < n; i++) li.add(sc.nextLong()); return li; } static ArrayList> InputsNums(long h, long w) { ArrayList> li = new ArrayList>(); for (var i = 0; i < h; i++) { li.add(InputNums(w)); } return li; } static String InputString() { return sc.next(); } static String InputStringLine() { return sc.nextLine(); } static ArrayList InputStrings(long n) { var li = new ArrayList(); for (var i = 0; i < n; i++) li.add(InputString()); return li; } static ArrayList InputStringLines(long n) { var li = new ArrayList(); for (var i = 0; i < n; i++) li.add(InputStringLine()); return li; } static ArrayList> InputsStrings(long h, long w) { var li = new ArrayList>(); for (var i = 0; i < h; i++) li.add(InputStrings(w)); return li; } static void Output(boolean n) { stringBuilder.append(n ? "Yes" + el : "No" + el); } static void Output(T t) { stringBuilder.append(t.toString() + el); } static void Output(T[] ts, String sep) { if (ts.length != 0) { stringBuilder.append(ts[0]); for (var i = 1; i < ts.length; i++) stringBuilder.append(sep + ts[i]); stringBuilder.append(el); } } static void Output(ArrayList ts, String sep) { if (!ts.isEmpty()) { stringBuilder.append(ts.get(0)); for (var i = 1; i < ts.size(); i++) stringBuilder.append(sep + ts.get(i)); stringBuilder.append(el); } } // #endregion // #region 変換 static int ToInt(long n) { return (int) n; } // #endregion }