记录求最大公因数+最小公倍数
int temp=__gcd(len1,len2);//最大公因数
int temp2=(len1*len2)/temp;//最大公倍数
#include<bits/stdc++.h>
using namespace std;
long long int n;
string s1;
string s2;
int g[1000010];//前缀和,1输的数量
int f[1000010];//前缀和,2输的数量
bool is_win(char a,char b){//a赢 返回true
if(a=='R' && b=='P'){return false;}
else if(a=='R' && b=='S'){return true;}
else if(a=='P' && b=='R'){return true;}
else if(a=='P' && b=='S'){return false;}
else if(a=='S' && b=='R'){return false;}
else{return true;}
}
int main( )
{
cin>>n>>s1>>s2;
int len1=s1.size();
int len2=s2.size();
int temp=__gcd(len1,len2);//最大公因数
int temp2=(len1*len2)/temp;//最大公倍数
for(int i=1;i<=temp2;i++){
if(s1[(i-1)%len1]==s2[(i-1)%len2]){g[i]=g[i-1];f[i]=f[i-1];}
else if(is_win(s1[(i-1)%len1],s2[(i-1)%len2])){
g[i]=g[i-1];
f[i]=f[i-1]+1;
}
else{
g[i]=g[i-1]+1;
f[i]=f[i-1];
}
}
int cnt=n/temp2;
int cnt2=n%temp2;
cout<<cnt*g[temp2]+g[cnt2]<<' ';
cout<<cnt*f[temp2]+f[cnt2];
return 0;
}