#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= mod;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
char p[1010000], s[210], v[2010];
int cnt[2010], ct[2010], l, blk, lp, ls;
string ret;
int main() {
  gets(p);
  gets(s);
  scanf("%d", &l);
  lp = strlen(p);
  ls = strlen(s);
  blk = lp / l;
  ret = "0";
  for (int i = 0; i < l; i++) cnt[i] = 0;
  for (int i = 0; i < lp; i++) cnt[i % l]++;
  for (int i = 0; i < ls + 1; i++)
    if (blk * i <= ls && (blk + 1) * i >= ls) {
      int cr = l;
      bool fg = 1;
      for (int k = 0; k < l; k++) v[k] = '0';
      for (int k = 0; k < i; k++) ct[k] = 0;
      for (int k = 0; k < ls; k++) ct[k % i]++;
      for (int j = i - 1; j >= 0; j--) {
        bool gf = 0;
        for (int k = cr - 1; k >= 0; k--) {
          if (ct[j] != cnt[k]) continue;
          bool ff = 1;
          for (int p1 = j, p2 = k; p1 < ls && p2 < lp; p1 += i, p2 += l)
            if (s[p1] != p[p2]) {
              ff = 0;
              break;
            }
          if (ff) {
            gf = 1;
            v[k] = '1';
            cr = k;
            break;
          }
        }
        if (!gf) {
          fg = 0;
          break;
        }
      }
      if (fg) {
        string tmp(v, v + l);
        if (ret == "0" || tmp < ret) ret = tmp;
      }
    }
  cout << ret << endl;
}
