#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>

using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    long long n, q;
    cin>>n>>q;
    vector<long long>a(n);
    for(long long i=0;i<n;i++){
        cin>>a[i];
    }
    long long qq, l, r, c1, p, s, k;
    while(q--){
        cin>>qq>>l;
        if(qq==1){a[l-1]=-a[l-1];}
        else {
                k=0;
                c1=1000000000000000;
                p=0;
                s=0;
                cin>>r;
                for(long long i=l-1;i<r;i++){
                    if(a[i]==1)s++;
                }
                k=s;
                for(long long i=l-1;i<r;i++){
                    if(a[i]==-1){
                        if(p>0 && s>0 && c1>0){
                            p--;
                           // s--;
                            c1--;
                            c1=min(c1, s-1);
                            k++;
                        }
                    }
                    else {p++;s--;}
                }
                cout<<k<<"\n";
        }
    }
    return 0;
}
