#include<bits/stdc++.h>
using namespace std;
string a,b;
int z[20000100],zz[20001000],la,lb;
void getnxt(){
int l=1,r=0;
z[1]=0;
for(int i=2;i<=lb;i++){
if(i>r){
z[i]=0;
}
else{
int k=i-l+1;
z[i]=min(z[k],r-i+1);
}
while(i+z[i]<=lb&&b[z[i]+1]==b[i+z[i]]){
++z[i];
}
if(i+z[i]-1>r){
l=i;
r=i+z[i]-1;
}
}
}
int main(){
cin>>a>>b;
la=a.size();
lb=b.size();
b=" "+b+"#"+a;
int lc=lb;
lb=lb+1+la;
getnxt();
lb=lc;
z[1]=lb;
int ans=0;
for(int i=1;i<=lb;i++){
ans^=(i*(z[i]+1));
}
cout<<ans<<endl;
ans=0;
for(int i=lb+2;i<=lb+la+1;i++){
ans^=((i-lb-1)*(z[i]+1));
}
cout<<ans<<endl;
}