import sys from functools import lru_cache def main(): sys.setrecursionlimit(1 << 25) N = list(map(int, sys.stdin.readline().split())) N = tuple(N) @lru_cache(maxsize=None) def dfs(piles, taro, jiro, is_taro_turn): piles = list(piles) # Check if all piles are empty if sum(piles) == 0: if taro > jiro: return 1 # Taro wins elif taro < jiro: return -1 # Jiro wins else: return 0 # Draw best = None for i in range(4): if piles[i] == 0: continue for take in [1, 2, 3]: if take > piles[i]: continue new_piles = piles.copy() new_piles[i] -= take new_piles_tuple = tuple(new_piles) if is_taro_turn: new_taro = taro + take new_jiro = jiro if new_piles[i] == 0: stolen = (new_jiro) // 2 + (new_jiro % 2) new_taro += stolen new_jiro -= stolen if new_jiro < 0: new_jiro = 0 outcome = dfs(new_piles_tuple, new_taro, new_jiro, False) if outcome == 1: return 1 else: new_taro = taro new_jiro = jiro + take if new_piles[i] == 0: stolen = (new_taro) // 2 + (new_taro % 2) new_jiro += stolen new_taro -= stolen if new_taro < 0: new_taro = 0 outcome = dfs(new_piles_tuple, new_taro, new_jiro, True) if outcome == -1: return -1 # After checking all possible moves results = [] for i in range(4): if piles[i] == 0: continue for take in [1, 2, 3]: if take > piles[i]: continue new_piles = piles.copy() new_piles[i] -= take new_piles_tuple = tuple(new_piles) if is_taro_turn: new_taro = taro + take new_jiro = jiro if new_piles[i] == 0: stolen = (new_jiro) // 2 + (new_jiro % 2) new_taro += stolen new_jiro -= stolen if new_jiro < 0: new_jiro = 0 else: new_taro = taro new_jiro = jiro + take if new_piles[i] == 0: stolen = (new_taro) // 2 + (new_taro % 2) new_jiro += stolen new_taro -= stolen if new_taro < 0: new_taro = 0 outcome = dfs(new_piles_tuple, new_taro, new_jiro, not is_taro_turn) results.append(outcome) if is_taro_turn: if 1 in results: return 1 if 0 in results: return 0 return -1 else: if -1 in results: return -1 if 0 in results: return 0 return 1 result = dfs(N, 0, 0, True) if result == 1: print("Taro") elif result == -1: print("Jiro") else: print("Draw") if __name__ == "__main__": main()