import std.stdio, std.conv, std.array, std.string, std.algorithm, std.container, std.range, core.stdc.stdlib, std.math, std.typecons;
T[][] combinations(T)(T[] s, in int m) {   if (!m) return [[]];   if (s.empty) return [];   return s[1 .. $].combinations(m - 1).map!(x => s[0] ~ x).array ~ s[1 .. $].combinations(m); }

void main() {
  auto N = readln.chomp.to!int;
  auto A = readln.chomp.map!(c => cast(int)(c - '0')).array;

  int solve() {
    
    bool isOdd;
    foreach(i, a; A) {
      if (a == 1 && (N & (i+1)) != i+1) isOdd ^= true;
    }

    if (isOdd) return 1;
    if (A.any!(a => a == 1)) return 0;
    return 2;
  }

  solve().writeln();
}
