Link to this code: https://cses.fi/paste/05c918fa6e767768d78900/
""" 777 """

# i=index, B=tree, d=delta, N=TREE_SIZE, B1=difference_array, B2=correction_array
# l=left, r=right,
# _u=point_update, _q=query, update=range_update, query=range_query, p_sum=prefix_sum


class FenwickTree:
    def __init__(self, N):
        self.N = N + 2
        self.B1 = [0] * self.N
        self.B2 = [0] * self.N

    def _q(self, B, i):
        s = 0
        while i > 0:
            s += B[i]
            i -= i & -i
        return s

    def _u(self, B, i, d):
        while i < self.N:
            B[i] += d
            i += i & -i

    def update(self, l, r, d):
        self._u(self.B1, l, d)
        self._u(self.B1, r + 1, -d)
        self._u(self.B2, l, -d * (l - 1))
        self._u(self.B2, r + 1, d * r)

    def p_sum(self, i):
        return self._q(self.B1, i) * i + self._q(self.B2, i)

    def query(self, l, r):
        return self.p_sum(r) - self.p_sum(l - 1)


N, Q = map(int, input().split())
arr = list(map(int, input().split()))

FT = FenwickTree(N)
for i, x in enumerate(arr):
    FT.update(i + 1, i + 1, x)

qs = []
for _ in range(Q):
    ty, a, b = map(int, input().split())
    if ty == 1:
        FT.update(a, a, b - arr[a - 1])
        arr[a - 1] = b
    else:
        q = FT.query(a, b)
        qs.append(q)

for q in qs:
    print(q)