rt,
WA
#include <bits/stdc++.h>
using namespace std;
#define int long long
int z[20000001],p[20000001];
string a,b;
void gz(){
z[0]=b.size();
for(int i=1,l=0,r=0;i<b.size();i++){
if(i<=r&&z[l]<r-i+1)z[i]=z[l];
else{
z[i]=max(0ll,r-i+1);
while(b[z[i]]==b[z[i]+i] && z[i]+i<b.size())++z[i];
}if(r<i+z[i]-1)l=i,r=i+z[i]-1;
}
}
void gp(){
for(int i=0;i<min(a.size(),b.size()) && a[i]==b[i];i++)p[0]++;
for(int i=1,l=0,r=0;i<a.size();i++){
if(i<=r&&p[l]<r-i+1)p[i]=p[l];
else{
p[i]=max(0ll,r-i+1);
while(b[p[i]]==a[p[i]+i] && p[i]+i<a.size())++p[i];
}if(r<i+p[i]-1)l=i,r=i+p[i]-1;
}
}
signed main() {
cin>>a>>b;
gz();
gp();
int zo=0,po=0;
for(int i=1;i<=b.size();i++)zo^=i*(z[i-1]+1);
for(int i=1;i<=a.size();i++)po^=i*(p[i-1]+1);
cout<<zo<<endl<<po;
return 0;
}