#include<bits/stdc++.h>
using namespace std;
const int N = (1 << 20) + 5;
const int M = (1 << 20) - 1;
int f(int n, int m) {
if (m <= 0) return n == 0;
if (n < m) return 0;
return ((n - 1) & (m - 1)) == (m - 1);
}
int n, k, a[N], ans[N], p = M;
int main() {
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
for (int i = 1; i <= n; i++) {
for (int j = i, s = 0; j <= n; s += a[++j]) {
if (s >= 20 || (M >> s) < a[i]) break;
int t = (i > 1) + (j < n);
ans[a[i] << s] ^= f(n - 1 - (j - i) - t, k - t);
}
}
while (p && !ans[p]) --p;
while (~p) printf("%d", ans[p--]);
return 0;
}