from math import gcd def extgcd(a, b): u, v, x, y = 1, 0, 0, 1 while a != 0: k = b // a x -= k * u y -= k * v b -= k * a x, u = u, x y, v = v, y b, a = a, b return b, x, y def modinv(a, m): g, x, y = extgcd(a, m) if g != 1: raise ValueError("Inverse doesn't exist") else: return x % m def main(): Q = int(input()) M, R = 1, 0 hist = [] for _ in range(Q): t, *args = map(int, input().split()) if t == 1: m, r = args b = (r - R % m) % m a = M g = gcd(a, m) if b % g != 0: hist.append((-1, R)) R = -1 continue a //= g b //= g m //= g b = (b * modinv(a % m, m)) % m R += b * M M *= m hist.append((m, b)) elif t == 2: (k,) = args for _ in range(k): m, b = hist.pop() if m == -1: R = b else: M //= m R -= b * M else: (m,) = args if R == -1: print(-1) else: print(R % m) if __name__ == "__main__": main()