7
576460752303423487 2
82 9
101 104
10 21
31 10
0 1
10 30
 1
128817972817282999 327672410994637530
 66
7 0
5 7
1 3
3 2
3 5
0 6
1 2
0 7
4 5
4 7
5 1
2 0
4 0
0 5
3 6
7 3
6 0
5 2
6 6
1 7
5 6
2 2
3 4
2 1
5 3
4 6
6 2
3 3
100000000000 1000000000000000000
0 1
4 1
2 6
5 5
4 3
0 3
3 7
3 1
1 0
4 4
1000000000000000000 100000000000
7 6
4 2
7 5
1 6
6 1
2 7
7 7
6 7
2 4
0 2
2 5
7 2
0 0
5 0
5 4
7 4
6 4
0 4
1 1
6 5
1 4
2 3
1 5
7 1
6 3
3 0
 1
100000000000 100000000001
 1
23917 1000000000000000000

First
Second
Second
First
Second
Second
First
 First
 Second
Second
First
Second
First
Second
First
Second
Second
First
First
Second
Second
Second
First
First
Second
First
First
First
Second
First
Second
First
First
Second
First
First
First
Second
First
First
First
Second
Second
First
First
Second
First
First
Second
First
Second
First
First
First
First
Second
First
Second
First
First
Second
Second
Second
First
Second
Second
First
Second
First
Second
First
First
First
Second
 Second
 Second

import java.util.*;
import java.io.*;

public class wizards {
	static class Pair {
		long a,b;
		public Pair(long aa, long bb) {
			a = Math.min(aa, bb);
			b = aa ^ bb ^ a;
		}

		@Override
		public int hashCode() {
			return Long.hashCode(a ^ b);
		}

		@Override
		public boolean equals(Object o) {
			Pair p = (Pair)o;
			return (Long.compare(a, p.a) == 0) && (Long.compare(b, p.b) == 0);
		}
	}

	public static boolean winning(HashMap<Pair, Boolean> map, Pair p) {
		if (map.containsKey(p)) return map.get(p);
		else if (p.a == 0) return false;
		else if (p.a == 2 && p.b%6 > 2 && p.b > 6) {
			boolean win = winning(map, new Pair(p.b%6, 2));
			map.put(p, win);
			return win;
		}
		else if (p.a != 2 && p.b%(2*p.a) > p.a && p.b > 2*p.a) {
			boolean win = winning(map, new Pair(p.b%(2*p.a), p.a));
			map.put(p, win);
			return win;
		}
		else if (!winning(map, new Pair(p.b%p.a, p.a))) {
			map.put(p, true);
			return true;
		}

		long x = p.a, y = x*x;
		while (y < p.b && y > 0) {
			x = y;
			y *= p.a;
		}

		while (x >= p.a) {
			if (!winning(map, new Pair(p.b-x, p.a))) {
				map.put(p, true);
				return true;
			}
			x /= p.a;
		}

		map.put(p, false);
		return false;
	}

	static class JoltyScanner {
		public static final int BUFFER_SIZE = 1 << 16;
		public static final char NULL_CHAR = (char) -1;

		byte[] buffer = new byte[BUFFER_SIZE];
		boolean EOF_FLAG = false;
		int bufferIdx = 0, size = 0;
		char c = NULL_CHAR;
		BufferedInputStream in;

		public JoltyScanner(InputStream in) {
			this.in = new BufferedInputStream(in, BUFFER_SIZE);
		}
		public int nextInt() throws Exception {
			boolean negative = false;
			if (c == NULL_CHAR)
				c = nextChar();
			
			for (; !EOF_FLAG && (c < '0' || c > '9'); c = nextChar())
				if (c == '-')
					negative = true;

			if (EOF_FLAG) throw new Exception();

			int res = 0;
			for (; c >= '0' && c <= '9'; c = nextChar())
				res = (res << 3) + (res << 1) + c - '0';
			return negative ? -res : res;
		}
		public long nextLong() throws Exception {
			boolean negative = false;
			if (c == NULL_CHAR)
				c = nextChar();
			
			for (; !EOF_FLAG && (c < '0' || c > '9'); c = nextChar())
				if (c == '-')
					negative = true;

			if (EOF_FLAG) throw new Exception();

			long res = 0;
			for (; c >= '0' && c <= '9'; c = nextChar())
				res = (res << 3) + (res << 1) + c - '0';
			return negative ? -res : res;
		}
		public char nextChar() {
			if (EOF_FLAG) return NULL_CHAR;
			
			while (bufferIdx == size) {
				try {
					size = in.read(buffer);
					if (size == -1)
						throw new Exception();
				} catch (Exception e) {
					EOF_FLAG = true;
					return NULL_CHAR;
				}

				if (size == -1) 
					size = BUFFER_SIZE;

				bufferIdx = 0;
			}
			return (char) buffer[bufferIdx++];
		}
	}

	public static void main(String[] args) throws Exception {
		JoltyScanner sc = new JoltyScanner(System.in);
		PrintWriter pw = new PrintWriter(System.out);

		HashMap<Pair, Boolean> map = new HashMap<>();

		for (int i=0; i<100; i++)
			for (int j=i+1; j<100; j++)
				if (!winning(map, new Pair(i,j)))
					pw.printf("%d %d\n", i, j);

		// int t = sc.nextInt();

		// for (int c=1; c<=t; c++) {
		// 	pw.println(winning(map, new Pair(sc.nextLong(), sc.nextLong())) ? "First" : "Second");
		// }

		pw.close();
	}
}