/*
TASK:CONTEXT
LANG:C++
*/ 
#include <iostream>
#include <string>
#include <vector>

using namespace std;
string a1,b1,a,b,b2;
char x;
vector <string> ans;
int main()
{
     int n;
     cin>>n;
     cin.get(x);
     getline(cin,a1);
     getline(cin,b1);
     int k=0;
     int sza=a1.size();
     int i;
     while(a1[sza-1]==' ')sza--;
     for(i=0;i<sza;i++)
     {
          if(k==0&&a1[i]==' ')continue;
          if(a1[i]!=' ')k=1;
          if(k){if(a1[i]>='A'&&a1[i]<='Z')a1[i]+=32;a+=a1[i];}
     }
     int szb=b1.size();
     int use=0;
     while(b1[szb-1]==' '){szb--;}
     k=0;
     for(i=0;i<szb;i++)
     {
          if(k==0&&b1[i]==' '){use++;continue;}
          if(b1[i]!=' ')k=1;
          if(k){if(b1[i]>='A'&&b1[i]<='Z')b+=(b1[i]+32);else b+=b1[i];b2+=b1[i];}
        
     }
     sza=a.size();szb=b.size();
     for(int i=0;i<szb-sza+1;i++)
     {
          if(a==b.substr(i,sza))
          {
               if(i-n<0&&2*n+sza<szb){
                    ans.push_back(b1.substr(0,sza+2*n));
                                     }
               if(i+sza+n>=szb&&i-2*n>=0)
                    ans.push_back(b2.substr(i-2*n,2*n+sza));
               if(i-n>=0&&i+sza+n<szb)
                    ans.push_back(b2.substr(i-n,sza+2*n));
                    if(i-n<0&&i+sza+n>=szb)
                    ans.push_back(b2);
                         
          }
                                        
     }

     int szv=ans.size();
     for(int i=0;i<szv;i++)
     cout<<ans[i]<<endl;
return 0;
}

