
TLE85
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1004535809;
const ll MAX_N=1e7+10;
ll n,m,fct[MAX_N],inv[MAX_N];
ll qpow(ll a,ll b){
ll res=1;
while(b){
if(b&1)res=(res*a)%mod;
a=a*a%mod;
b>>=1;
}
return res;
}
void solve(ll l){
fct[0]=1;
for(ll i=1;i<=l;i++)fct[i]=(fct[i-1]*i)%mod;
inv[l]=qpow(fct[l],mod-2);
for(ll i=l-1;~i;i--)inv[i]=(inv[i+1]*(i+1))%mod;
return;
}
ll C(ll x,ll y){
if(y<0||y>x)return 0;
return fct[x]*inv[y]%mod*inv[x-y]%mod;
}
int main(){
// freopen("card.in","r",stdin);
// freopen("card.out","w",stdout);
cin>>n>>m;
solve(n+m);
ll it=qpow(C(n+m,n),mod-2),p1=0,p2=0;
for(ll i=0;3*i+1<=n+m;i++)p1=(p1+C(n+m-1-2*i,n-1))%mod;
for(ll i=0;3*i+2<=n+m;i++)p2=(p2+C(n+m-1-(2*i+1),n-1))%mod;
cout<<p1*it%mod<<' '<<p2*it%mod;
return 0;
}