#include <bits/stdc++.h>
using namespace std;
int modulo = 315;
void escribe(vector<int> &v) {
  for (int i = 0; i < int(v.size()); i++) {
    cout << v[i] << ",";
  }
}
int main() {
  int n, m;
  cin >> n >> m;
  vector<int> siguiente(n);
  vector<int> supersiguiente(n);
  vector<int> pasos(n);
  for (int i = 0; i < n; i++) {
    cin >> siguiente[i];
    siguiente[i] += i;
  }
  for (int i = n - 1; i >= 0; i--) {
    int tope = min((i / modulo) * modulo + modulo, n);
    if (siguiente[i] >= tope) {
      supersiguiente[i] = siguiente[i];
      pasos[i] = 1;
    } else {
      supersiguiente[i] = supersiguiente[siguiente[i]];
      pasos[i] = 1 + pasos[siguiente[i]];
    }
  }
  for (int orden = 0; orden < m; orden++) {
    int ord;
    cin >> ord;
    if (ord == 0) {
      int a, b;
      cin >> a >> b;
      a--;
      siguiente[a] = a + b;
      int inf = (a / modulo) * modulo;
      int tope = min((a / modulo) * modulo + modulo, n);
      for (int i = a; i >= inf; i--) {
        if (siguiente[i] >= tope) {
          supersiguiente[i] = siguiente[i];
          pasos[i] = 1;
        } else {
          supersiguiente[i] = supersiguiente[siguiente[i]];
          pasos[i] = 1 + pasos[siguiente[i]];
        }
      }
    } else {
      int a;
      cin >> a;
      a--;
      int anta = a;
      int pas = 0;
      while (a < n) {
        pas += pasos[a];
        anta = a;
        a = supersiguiente[a];
      }
      a = anta;
      while (a < n) {
        anta = a;
        a = siguiente[a];
      }
      cout << anta + 1 << " " << pas << endl;
    }
  }
}
