import math def gcd(a, b): while b: a, b = b, a % b return a def solve(): n, m = map(int, input().split()) a = list(map(int, input().split())) result = [] for _ in range(m): query = list(map(int, input().split())) if query[0] == 1: c, d = query[1], query[2] a[c - 1] += d else: c, d = query[1], query[2] result.append(str(max(a[c - 1], a[d - 1])* gcd(a[c-1],a[d-1]))) print("\n".join(result)) if __name__ == "__main__": solve()