#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int n, m, k;
long long arr[1000003];
struct SegmentTree {
int N;
vector<long long> tree;
long long merge(long long left, long long right) {
return left + right;
}
long long buildRec(int node, int nodeLeft, int nodeRight) {
if (nodeLeft == nodeRight) {
return tree[node] = arr[nodeLeft];
}
int mid = (nodeLeft + nodeRight) / 2;
long long LeftVal = buildRec(2 * node, nodeLeft, mid);
long long RightVal = buildRec(2 * node + 1, mid + 1, nodeRight);
return tree[node] = merge(LeftVal, RightVal);
}
void init(int Size) {
N = Size;
tree.resize(N * 4);
buildRec(1, 0, N - 1);
}
long long queryRec(int left, int right, int node, int nodeLeft, int nodeRight) {
// 노드 구간이 구하는 구간 밖일 경우 0 리턴
if (nodeRight < left || right < nodeLeft) {
return 0;
}
if (left <= nodeLeft && nodeRight <= right) {
return tree[node];
}
int mid = (nodeLeft + nodeRight) / 2;
long long leftVal = queryRec(left, right, 2 * node, nodeLeft, mid);
long long rightVal = queryRec(left, right, 2 * node + 1, mid + 1, nodeRight);
return merge(leftVal, rightVal);
}
long long query(int left, int right) {
return queryRec(left, right, 1, 0, N - 1);
}
long long updateRec(int index, long long newValue, int node, int nodeLeft, int nodeRight) {
if (nodeRight < index || index < nodeLeft) return tree[node];
if (nodeLeft == nodeRight) {
return tree[node] = newValue;
}
int mid = (nodeLeft + nodeRight) / 2;
long long leftVal = updateRec(index, newValue, 2 * node, nodeLeft, mid);
long long rightVal = updateRec(index, newValue, 2 * node + 1, mid + 1, nodeRight);
return tree[node] = merge(leftVal, rightVal);
}
void update(int index, long long newValue) {
updateRec(index, newValue, 1, 0, N - 1);
}
};
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m >> k;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
SegmentTree st;
st.init(n);
for (int i = n + 2; i <= n + m + k + 1; i++) {
int a, b;
long long c;
cin >> a >> b >> c;
if (a == 2) {
cout << st.query(b - 1, c - 1) << '\n';
}
else {
st.update(b - 1, c);
}
}
return 0;
}