#include <bits/stdc++.h>
using namespace std;
int n, m, p;
char xu[1005000];
char key[205];
int res[2050];
int jie[2050];
void make(int sl, int sr, int cl, int cr, int every) {
  int point = cl + cr;
  int i, j;
  for (i = n; i > sl; i--) {
    if (point <= cl)
      jie[i] = 0;
    else {
      for (j = 0; j < every; j++) {
        if (xu[j * n + i] != key[j * (cl + cr) + point]) break;
      }
      if (j >= every) {
        jie[i] = 1;
        point--;
      } else
        jie[i] = 0;
    }
  }
  if (point > cl) return;
  for (i = sl; i >= 1; i--) {
    if (point <= 0)
      jie[i] = 0;
    else {
      for (j = 0; j <= every; j++) {
        if (xu[j * n + i] != key[j * (cl + cr) + point]) break;
      }
      if (j > every) {
        jie[i] = 1;
        point--;
      } else
        jie[i] = 0;
    }
  }
  if (point > 0) return;
  for (i = 1; i <= n; i++) {
    if (jie[i] < res[i]) {
      for (j = 1; j <= n; j++) res[j] = jie[j];
      return;
    }
    if (jie[i] > res[i]) return;
  }
}
void getdata(char x[]) {
  int point = 1;
  char t = getchar();
  while (32 <= t && t <= 126) {
    x[point] = t;
    point++;
    t = getchar();
  }
}
int main() {
  int i, j;
  getdata(xu);
  getdata(key);
  scanf("%d", &n);
  m = strlen(xu + 1);
  p = strlen(key + 1);
  if (m % n == 0) {
    int every = m / n;
    if (p % every != 0)
      res[1] = 2;
    else {
      int tot = p / every;
      int has = tot;
      for (i = n; i >= 1; i--) {
        if (has > 0) {
          for (j = 0; j < every; j++) {
            if (xu[j * n + i] != key[j * tot + has]) break;
          }
          if (j >= every) {
            res[i] = 1;
            has--;
          }
        }
      }
      if (has > 0) res[1] = 2;
    }
  } else if (m <= n) {
    int point = p;
    for (i = m; i >= 1; i--) {
      if (point > 0 && xu[i] == key[point]) {
        res[i] = 1;
        point--;
      }
    }
    if (point > 0) res[1] = 2;
  } else {
    for (i = 1; i <= n; i++) res[i] = 2;
    int every = m / n;
    int a = m % n;
    int b = n - a;
    for (i = 0; i <= a && i * (every + 1) <= p; i++) {
      int last = p - i * (every + 1);
      if (last % every == 0) {
        j = last / every;
        make(a, b, i, j, every);
      }
    }
  }
  if (res[1] == 2)
    printf("0\n");
  else {
    for (i = 1; i <= n; i++) printf("%d", res[i]);
    printf("\n");
  }
  return 0;
}
