#include <stdio.h>

#define MAX_N 100000
#define CAMADAS 18

int main() {

    int n, q, k, p, t, contEventos, evento, totalPessoas, i, pessoas[CAMADAS][MAX_N];

    scanf("%d %d", &n, &q);

    for (i = 0; i < n; i++) {
        scanf("%d", &pessoas[0][i]);
    }
    for (; i < MAX_N; i++) {
        pessoas[0][i] = 0;
    }
    for (t = 1; t < CAMADAS; t++) {
        for (i = 0; i < MAX_N / 2; i++) {
            pessoas[t][i] = pessoas[t - 1][2 * i] + pessoas[t - 1][2 * i + 1];
        }
        for (; i < MAX_N; i++) {
            pessoas[t][i] = 0;
        }
    }

    for (contEventos = 0; contEventos < q; contEventos++) {
        scanf("%d", &evento);
        scanf("%d", &k);

        if (evento == 0) {
            scanf("%d", &p);
            k--;
            pessoas[0][k] = p;
            for (t = 1; t < CAMADAS; t++) {
                pessoas[t][k / 2] = pessoas[t - 1][k] + pessoas[t - 1][k ^ 1];
                k /= 2;
            }
        } else if (evento == 1) {
            totalPessoas = 0;

            for (t = 0; t < CAMADAS && k > 0; t++) {
                if (k & 1) totalPessoas += pessoas[t][k - 1];
                k /= 2;
            }

            printf("%d\n", totalPessoas);
        }

        // Para mostrar a tabela.
        /*for (int y = 0; y < CAMADAS; y++) {
            printf("\n|");
            for (int z = 0; z < n; z++) {
                printf("%d ", pessoas[y][z]);
            }
            printf("|\n");
        }*/
    }

    return 0;
}