import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.Random;

public class TestGen {
	class Test {
		int a, b;

		public Test(int... a) {
			this.a = a[0];
			this.b = a[1];
		}

	}

	private int testCount = 2;

	private void write(Test t) {
		try {
			++testCount;
			System.err.println(testCount + " " + t.a + " " + t.b);
			String filename = testCount / 10 + "" + testCount % 10;
			PrintWriter out = new PrintWriter(filename);
			out.println(t.a + " " + t.b);
			out.flush();
			out.close();
		} catch (IOException ex) {
			throw new RuntimeException(ex);
		}
	}

	void myAssert(boolean b) {
		if (!b)
			throw new AssertionError();
	}

	final static int MAX = 1000000000;
	static Random rand = new Random(1);
	int[][] HAND = {

	};

	// Class<?>[] wrong_solutions = {
	// differ_sm_double_simple.class,
	// differ_sm_double.class,
	// differ_sm_int.class,
	// differ_sm_long.class,
	// };
	class Frac implements Comparable<Frac> {
		BigInteger a, b;

		public Frac(BigInteger a, BigInteger b) {
			super();
			if (b.signum() < 0) {
				a = a.negate();
				b = b.negate();
			}
			this.a = a;
			this.b = b;
		}

		public Frac(long a, long b) {
			this(BigInteger.valueOf(a), BigInteger.valueOf(b));
		}

		public Frac(long a) {
			this(a, 1);
		}

		@Override
		public int compareTo(Frac f) {
			return a.multiply(f.b).compareTo(f.a.multiply(b));
		}

		@Override
		public String toString() {
			return a + "/" + b;
		}
	}

	public void run() throws IOException {
		for (int i = -2; i <= 2; i++) {
			for (int j = -2; j <= 2; j++) {
				if (i == 0 && j == 1) continue;
				write(new Test(i, j));
			}
		}
		// impossible a^a calculate in long
		writeAllSignums(16, 16); // 0 in long
		writeAllSignums(17, 17); // not 0 int long
		writeAllSignums(24, 24); // 0 in long
		writeAllSignums(98, 98); // 0 in long
		int bigEven = 931736252;
		int bigOdd = 931736253;
		for (int i = 0; i <= 2; i++) {
			writeAllSignums(i, bigEven);
			writeAllSignums(i, bigOdd);
		}
		writeAllSignums(bigEven, bigEven);
		writeAllSignums(1000000000 - 7, 1000000000 - 8);
		writeAllSignums(1000000000 - 7, 1000000000 - 9);
		writeAllSignums(MAX, MAX);
		for (int i = 0; i < 10; i++) {
			write(new Test(rand.nextInt(2 * MAX + 1) - MAX, rand.nextInt(2 * MAX + 1) - MAX));
		}
	}

	void writeAllSignums(int a, int b) {
		write(new Test(a, b));
		if (a != 0) {
			write(new Test(-a, b));
		}
		if (a != b) {
			write(new Test(a, -b));
		}
		if (a != 0 || b != 0) {
			write(new Test(-a, -b));
		}
	}

	public static void main(String[] args) throws IOException {
		new TestGen().run();
	}

}
