#include<bits/stdc++.h>
/*• __builtin_clz(x): the number of zeros at the beginning of the bit represen- tation
• __builtin_ctz(x): the number of zeros at the end of the bit representation
• __builtin_popcount(x): the number of ones in the bit representation
• __builtin_parity(x): the parity (even or odd) of the number of ones in the
bit representation*/
typedef long long ll;
#define M 1000000007;
using namespace std;
ll ncr(ll N,ll r)
{
	ll i,j;
	ll sol[N+1][r+1];
	for(i=1;i<=N;i++)
	{
		sol[i][0]=1;
		sol[i][i]=1;
	}
	for(i=2;i<=N;i++)
	{
		for(j=1;j<i;j++)
		{
			sol[i][j]=sol[i-1][j]+sol[i-1][j-1];
		}
	}
	return sol[N][r];
}
#define max(a,b) (a>b) ? a : b
#define min(a,b) (a>b) ? b : a
int main()
{
    ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	//ll t;
	//cin>>t;
	//while(t--)
	//{
		ll n,q;
		cin>>n>>q;
		ll a[n];
		ll i,c1=0;
		for(i=0;i<n;i++)
		{
			cin>>a[i];
			if(a[i])
			c1++;
		}
		for(i=0;i<q;i++)
		{
			ll t,k;
			cin>>t>>k;
			if(t==1)
			{
				a[k-1]=1-a[k-1];
				if(a[k-1])
				{
					c1++;
				}
				else
				{
					c1--;
				}
			}
			else
			{
				if(k<=c1)
				{
					cout<<"1\n";
				}
				else
				{
					cout<<"0\n";
				}
			}
		}
	//}
	return 0;
}