ll m[64];
rep(i,64){
	ll x=~0ll;
	rep(j,6){
		if(i&1ll<<j){
			x&=~(1ll<<m[j]);
		}
	}
	m[i]=__builtin_ctzll(x);
}

ll e=0,g=0;
ll@n;
rep(n){
	ll@a;
	if(a>=0){
		ll x=~0ll;
		rep(j,6){
			if(a&1ll<<j){
				x&=~(1ll<<m[j]);
			}
		}
		e^=__builtin_ctzll(x);
	}else{
		g^=1;
	}
}
wt(g||e?1:2);