#include<iostream>#include<cstring>#define int long longusingnamespacestd;constintN=2E7+10;intn,m,ans1,ans2;stringa,b;intz[N*2];signedmain(){ios::sync_with_stdio(0);cin.tie(0);cin>>a>>b;n=a.size(),m=b.size();b+='$'+a;for(inti=1,k=0;i<b.size();i++){if(k+z[k]>i)z[i]=min(z[i-k],k+z[k]-i);while(i+z[i]<b.size()&&b[i+z[i]]==b[z[i]])++z[i];if(i+z[i]>k+z[k])k=i;}ans1^=m+1;for(inti=1;i<m;i++){ans1^=(i+1)*(z[i]+1);}for(inti=m+1;i<n+m+1;i++){ans2^=(i-m)*(z[i]+1);}cout<<ans1<<'\n'<<ans2<<endl;return0;}
#include<iostream>#include<cstring>usingnamespacestd;constintN=1E6+10;intn,mx,ans,ap;strings;intz[N];intmain(){cin>>s;n=s.size();for(inti=1,k=0;i<n;i++){if(k+z[k]>i)z[i]=min(z[i-k],k+z[k]-i);while(s[i+z[i]]==s[z[i]])++z[i];if(i+z[i]>=k+z[k])k=i;}for(inti=1;i<n;i++){mx=max(mx,z[i]-(i+z[i]==n));}for(inti=1;i<n;i++){if(i+z[i]==n&&z[i]<=mx)ans=max(ans,z[i]);}for(inti=0;i<ans;i++){cout<<s[i];}if(!ans)cout<<"Just a legend";cout<<endl;return0;}