Reminder: in case of any technical issues, you can use the lightweight website
m1.codeforces.com,
m2.codeforces.com,
m3.codeforces.com.
×

Package for this problem was not updated by the problem writer or Codeforces administration after we’ve upgraded the judging servers. To adjust the time limit constraint, solution execution time will be multiplied by 2. For example, if your solution works for 400 ms on judging servers, then value 800 ms will be displayed and used to determine the verdict.

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

E. Binary Key

time limit per test

4 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputLet's assume that *p* and *q* are strings of positive length, called the container and the key correspondingly, string *q* only consists of characters 0 and 1. Let's take a look at a simple algorithm that extracts message *s* from the given container *p*:

i = 0;

j = 0;

s = <>;

while i is less than the length of the string p

{

if q[j] == 1, then add to the right of string s character p[i];

increase variables i, j by one;

if the value of the variable j equals the length of the string q, then j = 0;

}

In the given pseudocode *i*, *j* are integer variables, *s* is a string, '=' is an assignment operator, '==' is a comparison operation, '[]' is the operation of obtaining the string character with the preset index, '<>' is an empty string. We suppose that in all strings the characters are numbered starting from zero.

We understand that implementing such algorithm is quite easy, so your task is going to be slightly different. You need to construct the lexicographically minimum key of length *k*, such that when it is used, the algorithm given above extracts message *s* from container *p* (otherwise find out that such key doesn't exist).

Input

The first two lines of the input are non-empty strings *p* and *s* (1 ≤ |*p*| ≤ 10^{6}, 1 ≤ |*s*| ≤ 200), describing the container and the message, correspondingly. The strings can contain any characters with the ASCII codes from 32 to 126, inclusive.

The third line contains a single integer *k* (1 ≤ *k* ≤ 2000) — the key's length.

Output

Print the required key (string of length *k*, consisting only of characters 0 and 1). If the key doesn't exist, print the single character 0.

Examples

Input

abacaba

aba

6

Output

100001

Input

abacaba

aba

3

Output

0

Note

String *x* = *x*_{1}*x*_{2}... *x*_{p} is lexicographically smaller than string *y* = *y*_{1}*y*_{2}... *y*_{q}, if either *p* < *q* and *x*_{1} = *y*_{1}, *x*_{2} = *y*_{2}, ... , *x*_{p} = *y*_{p}, or there exists such integer *r* (0 ≤ *r* < *min*(*p*, *q*)) that *x*_{1} = *y*_{1}, *x*_{2} = *y*_{2}, ... , *x*_{r} = *y*_{r} and *x*_{r + 1} < *y*_{r + 1}. Symbols are compared according to their ASCII codes.

Codeforces (c) Copyright 2010-2020 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Apr/08/2020 18:33:58 (f3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|