#include <bits/stdc++.h>

using namespace std;

#define ll long long

ll resenje(bool s[], ll n, ll c)
{
	if (n == c)
	{
		
	}
	return 0;
}

int main()
{
	// posle svake promene ispitati najmanju mogucu ukupnu cenu da se svi novcici okrenu
	// tako da im je 0 na vidljivoj strani, ako je moguce primenjivati 2 operacije
	// proizvoljan broj puta u proizvoljnom redosledu:
	// okreni jedan novcic za cenu 1
	// okreni sve novcice na nekom podnizu uzastopnih novcica za cenu C
	// ako je N = C
	// mozemo samo da okrecemo za 1
	ll n, c, q;
	cin >> n;
	cin >> c;
	cin >> q;
	string s;
	cin >> s;
	bool binarni[n];
	for (int i = 0; i < n; i++)
	{
		binarni[i] = s[i] - '0';
	}
	for (ll i = 0; i < q; i++)
	{
		ll l, r;
		cin >> l;
		cin >> r;
		for (int j = l-1; j <= r-1; j++)
		{
			binarni[j] = !binarni[j];
		}
		// ovde manipulisemo string prvo
		cout << 1;
		// ovde ispis
	}
	return 0;
}