ans = [] for j in range(1, 31): ans.append((1,)) ans.append((j,)) A = [i for i in range(1, 31)] def f(i, j): t = A[i] + A[j] A[i] = A[j] = t i += 1 j += 1 ans.append((3,)) ans.append((i, j)) tot = 998244352 f(29, 29) f(29, 28) f(29, 27) f(29, 1) for _ in range(23): f(29, 29) ans.append((5,)) ans.append((30, 998244352)) f(1, 29) f(27, 29) f(28, 29) for i in range(1, 30): f(i, 29) print(len(ans) // 2) for row in ans: print(*row) exit() import random random.seed(0) MOD = 998244353 n = 30 A = [random.randrange(1, 10**7) for _ in range(n)] B = [0] * n for i in range(len(ans) // 2): t = ans[i * 2][0] if t == 1: j = ans[i * 2 + 1][0] - 1 for k in range(n): B[k] += pow(A[j], k + 1, MOD) B[k] %= MOD elif t == 3: i, j = ans[i * 2 + 1] i -= 1 j -= 1 b = B[i] * B[j] % MOD B[i] = B[j] = b elif t == 5: i, x = ans[i * 2 + 1] i -= 1 B[i] += x B[i] %= MOD print(A) print(B) print(sum(A)) print(sum(B)) print(len(ans) // 2)