#include <fstream>
#include <vector>
using namespace std;
ifstream cin("aib.in");
ofstream cout("aib.out");
#define ll long long
ll n, m, opr;
vector<ll> g;
vector<ll> sum;
int main() {
cin.tie(0);
cin.sync_with_stdio(false);
cin >> n >> m;
g.resize(n + 1);
sum.resize(n + 1);
for (int i = 1; i <= n; ++i)
cin >> g[i];
for (int i = 1; i <= n; ++i)
sum[i] = sum[i - 1] + g[i];
for (int i = 1; i <= m; ++i) {
cin >> opr;
if (opr == 0) {
int a, b;
cin >> a >> b;
g[a] += b;
for (int j = a; j <= n; ++j)
sum[j] += b;
}
else if (opr == 1) {
int a, b;
cin >> a >> b;
cout << sum[b] - sum[a-1] << '\n';
}
else if (opr == 2) {
int a, k;
cin >> a;
for (int j = 1; j <= n; ++j) {
if (sum[j] >= a) {
k = j;
break;
}
}
if (sum[k] != a) cout << -1 << '\n';
else cout << k << '\n';
}
}
return 0;
}