/*
TASK:context
LANG:C++
*/
#include <iostream>
using namespace std;
string keyword, text, stext;
string parse(string s, bool changecase)
 {
  int i=0, bi, di;
  string r="";
  while(s[i]==' ') { i++; }
  bi=i;
  i=s.size()-1;
  while(s[i]==' ') { i--; }
  di=i;
  for(i=bi; i<=di; i++)
   {
    if(s[i]>='A' && s[i]<='Z' && changecase) r+=s[i]-('A'-'a');
    else r+=s[i];
   }
  return r;
 }
string substring(string s, int a, int n)
 {
  string r="";
  for(int i=a; i<n; i++) r+=s[i];
  return r;
 }
int main()
 {
  int i, j, n, ind, ing, ori, orj;
  cin>>n;
  cin.get();
  getline(cin, keyword);
  getline(cin, text);
  keyword=parse(keyword, 1);
  stext=parse(text, 1);
  text=parse(text, 0);
  if(stext.size()+1<2*n+keyword.size()) { cout<<text<<endl; exit(0); }
  for(i=0; i<stext.size()-keyword.size()+1; i++)
   {
    //cout<<keyword<<":"<<substring(stext, i, i+keyword.size())<<endl;
    if(keyword==substring(stext, i, i+keyword.size()))
     {
      int r=n*2;
      j=i;
      while(j>0 && r>n) { j--; r--; }
      ind=j; ori=r;
      j=i+keyword.size()-1;
      while(j<stext.size() && r>=0) { j++; r--; }
      ing=j; orj=r;
      if(r>=0 && orj<8) { while(r>=0) { r--; ind--; } }
      else if(r>=0 && ori<8  ) { while(r>=0) { r--; ing++; } }
      for(j=ind; j<ing; j++) cout<<text[j];
      cout<<endl;
     }
    }
  return 0;
 }
