#include<bits/stdc++.h> using namespace std; #define maxn 500005 int p[maxn]; char s[maxn],s_new[maxn],ch[2]; int start; int init(){ int len=strlen(s); int j=2; s_new[0]='$',s_new[1]='#'; for(int i=0;i<len;i++){ s_new[j++]=s[i]; s_new[j++]='#'; } s_new[j]=0; return j; } int manacher(){ int len=init(); int mx=0,id,res=0; start=0; for(int i=0;i<len;i++){ if(mx>i)p[i]=min(p[id*2-i],mx-i); else p[i]=1; while(s_new[i-p[i]]==s_new[i+p[i]])p[i]++; if(mx<i+p[i]) mx=i+p[i],id=i; if(res<p[i]-1) res=p[i]-1,start=(i-p[i]+2)/2-1; } return res; } int main(){ while(scanf("%s%s",ch,s)!=EOF){ memset(p,0,sizeof p); int res=manacher(); if(res<=1){ puts("No solution!"); continue; } cout<<start<<" "<<start+res-1<<' '; for(int i=start;i<start+res;i++){ if(s[i]-ch[0]>=0)cout<<(char)(s[i]-ch[0]+'a'); else cout<<(char)(s[i]-ch[0]+26+'a'); } puts(""); } }