// #define _GLIBCXX_DEBUG
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define all(a) (a).begin(), (a).end()

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n, q;
    cin >> n >> q;
    vector<int> a(n);
    for (int i = 0; i < n; i++) cin >> a[i];
    while (q--) {
        int t;
        cin >> t;
        if (t == 1) {
            int i;
            cin >> i;
            i--;
            a[i] = -a[i];
        } else {
            int l, r;
            cin >> l >> r;
            // cerr << l << ' ' << r << endl;
            l--, r--;
            vector<vector<vector<int>>> dp(n + 1, vector<vector<int>>(n + 1, vector<int>(n + 1, -1e4)));
            dp[l][0][0] = 0;
            int res = 0;
            for (int i = l; i <= r + 1; i++) {
                for (int s = 0; s <= n; s++) {
                    for (int mx = 0; mx <= n; mx++) {
                        if (s == mx) res = max(res, dp[i][s][mx]);
                        // if (dp[i][s][mx] >= 0) cerr << i << ' ' << s << ' ' << mx << ' ' << dp[i][s][mx] << endl;
                        if (i <= r) {
                            dp[i + 1][s][mx] = max(dp[i + 1][s][mx], dp[i][s][mx]);
                            if (s + a[i] >= 0 && s + a[i] <= n)
                                dp[i + 1][s + a[i]][max(mx, s + a[i])] = max(dp[i + 1][s + a[i]][max(mx, s + a[i])], dp[i][s][mx] + 1);
                        }
                    }
                }
            }
            cout << res << '\n';
        }
    }
}