#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
string T;
string pat;
void getNext(int next[],int lengthP){
int j=0,k=-1;
next[0]=-1;
while(j<lengthP){
if(k==-1||pat[j]==pat[k]){
j++;k++;
next[j]=k;
}else
k=next[k];
}
}
int kmp(int k,int next[]){
int posP=0,posT=k;
int lengthP=pat.length();
int lengthT=T.length();
while(posP<lengthP&&posT<lengthT){
if(posP==-1||pat[posP]==T[posT]){
posP++;posT++;
}else
posP=next[posP];
}
if(posP<lengthP) return -1;
else return posT-lengthP;
}
int main(){
cin>>T;
cin>>pat;
int lengthP=pat.length();
int next[lengthP];
memset(next,0,sizeof(next));
getNext(next,lengthP);
int m;
scanf("%d",&m);
int pos=kmp(m,next);
cout<<pos+1<<endl;
return 0;
}