#include <bits/stdc++.h>
using namespace std;
inline char skipwhitespace() {
  char ch = getchar();
  while (ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t') ch = getchar();
  return ch;
}
void gi(int &x) {
  register int c = getchar();
  x = 0;
  int sn = 1;
  for (; (c < 48 || c > 57); c = getchar())
    if (c == '-') sn = -1;
  for (; c > 47 && c < 58; c = getchar()) {
    x = (x << 1) + (x << 3) + c - 48;
  }
  x *= sn;
}
void gii(long long int &x) {
  register long long int c = getchar();
  x = 0;
  long long int sn = 1;
  for (; (c < 48 || c > 57); c = getchar())
    if (c == '-') sn = -1;
  for (; c > 47 && c < 58; c = getchar()) {
    x = (x << 1) + (x << 3) + c - 48;
  }
  x *= sn;
}
void wi(int n) {
  int sign = n >= 0 ? 1 : -1;
  n = n > 0 ? n : -n;
  char buf[10];
  int i = 9;
  if (!n) buf[i--] = 48;
  while (n) {
    buf[i--] = n % 10 + 48;
    n /= 10;
  }
  if (sign < 0) printf("%c", '-');
  while (++i < 10) printf("%c", buf[i]);
}
void wii(long long int n) {
  long long int sign = n >= 0 ? 1 : -1;
  n = n > 0 ? n : -n;
  char buf[25];
  long long int i = 24;
  if (!n) buf[i--] = 48;
  while (n) {
    buf[i--] = n % 10 + 48;
    n /= 10;
  }
  if (sign < 0) printf("%c", '-');
  while (++i < 25) printf("%c", buf[i]);
}
int gs(char *s) {
  char ch = skipwhitespace();
  int n = 0;
  while ((ch != '\n' && ch != ' ' && ch != '\t')) {
    s[n++] = ch;
    ch = getchar();
  }
  s[n] = 0;
  return n;
}
void ws(char *s) {
  char *p = s;
  while (*p) {
    printf("%c", *p);
    p++;
  }
}
char str[1000006];
int p[1000006], ans[1000006];
void space(int n) {
  if (n)
    while (n) cout << " ", n /= 10;
  else
    cout << " ";
}
int main() {
  int n, k, i, j, tL, tl, tcnt, L, l, cnt, temp, flag = 0;
  gi(n);
  gi(k);
  gs(str);
  p[1] = 0;
  i = 1;
  j = 0;
  while (i < n) {
    if (str[i] == str[j])
      p[i + 1] = j + 1, i++, j++;
    else {
      if (j == 0)
        p[i + 1] = 0, i++;
      else
        j = p[j];
    }
  }
  for (int i = 1; i <= n; i++) {
    if (i % (i - p[i]) == 0 && (i / (i - p[i])) % k == 0) {
      ans[i] = 1, flag = 1;
      L = i;
      l = p[i];
    } else if (flag) {
      int diff = i - L, x = diff, y = L + diff;
      if ((L / k) >= diff && str[x - 1] == str[y - 1]) {
        ans[i] = 1;
      } else
        flag = 0;
    } else
      ans[i] = 0;
  }
  for (int i = 1; i <= n; i++) cout << ans[i];
  printf("\n");
  return 0;
}
