def naive(H,W): grid = [["@" for _ in range(W)] for _ in range(H)] can = set(range(H+W)) def f(): nonlocal can if(not can): return 2 * sum(sum(grid[i][j] == "#" for j in range(W)) for i in range(H)) - H*W >= 0 for i in list(can): if(i < H): can.remove(i) memo = grid[i][:] grid[i] = ["#"] * W if(g()): can.add(i) grid[i] = memo[:] return True else: can.add(i) grid[i] = memo[:] else: can.remove(i) memo = [grid[j][i-H] for j in range(H)] for j in range(H):grid[j][i-H] = "#" if(g()): can.add(i) for j in range(H):grid[j][i-H] = memo[j] return True else: can.add(i) for j in range(H):grid[j][i-H] = memo[j] return False def g(): nonlocal can if(not can): return 2 * sum(sum(grid[i][j] == "#" for j in range(W)) for i in range(H)) - H*W >= 0 for i in list(can): if(i < H): can.remove(i) memo = grid[i][:] grid[i] = ["."] * W if(not f()): can.add(i) grid[i] = memo[:] return False else: can.add(i) grid[i] = memo[:] else: can.remove(i) memo = [grid[j][i-H] for j in range(H)] for j in range(H):grid[j][i-H] = "." if(not f()): can.add(i) for j in range(H):grid[j][i-H] = memo[j] return False else: can.add(i) for j in range(H):grid[j][i-H] = memo[j] return True return f() # for i in range(1,10): # for j in range(1,10): # print(i,j,"🔶" if naive(i,j) else "🔷") T = int(input()) for _ in range(T): H,W = list(map(int,input().split())) print("sepa" if (H+W) % 2 == 1 else "ryota")