#include <bits/stdc++.h>
using namespace std;
long long rPow(long long n, long long k) {
  if (k <= 0) return 1;
  return n * rPow(n, --k);
}
int a[100100];
int rep[100100];
int main() {
  ios::sync_with_stdio(0);
  cin.tie();
  cout.tie();
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) cin >> a[i];
  long long add = 0;
  while (m--) {
    int t;
    cin >> t;
    if (t == 1) {
      int x, v;
      cin >> v >> x;
      if (add > 0) rep[v] = add;
      a[v] = x;
    } else if (t == 2) {
      int y;
      cin >> y;
      add += y;
    } else {
      int q;
      cin >> q;
      cout << a[q] + add - rep[q] << endl;
    }
  }
  return 0;
}
