/* -*- coding: utf-8 -*- * * 2037.cc: No.2037 NAND Pyramid - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 400000; /* typedef */ /* global variables */ char ss[2][MAX_N + 4]; /* subroutines */ void reduce(int n, char s0[], char s1[]) { for (int i = 0; i + 1 < n; i++) s1[i] = (s0[i] == '1' && s0[i + 1] == '1') ? '0' : '1'; s1[n - 1] = '\0'; } /* main */ int main() { int n, k; scanf("%d%d%s", &n, &k, ss[0]); int cur = 0, nxt = 1; reduce(n, ss[cur], ss[nxt]); swap(cur, nxt), n--; //puts(ss[cur]); if ((k ^ n) & 1) { reduce(n, ss[cur], ss[nxt]); swap(cur, nxt), n--; } int d = (n - k) / 2; for (int i = 0; i < k; i++) putchar(ss[cur][i + d]); putchar('\n'); return 0; }