U511466
#include<bits/stdc++.h>
using namespace std;
#define int unsigned long long
int sb[250][250];
int cyb(int a,int b){
int r=a%b;
while(r!=0){
a=b;
b=r;
r=a%b;
}
return b;
}
signed main(){
int n,m;
cin>>n>>m;
int nt1=-1,nt2=-1;
for(int i=1;i<=300;i++){
for(int j=1;j<=i;j++){
if(j==1) sb[i][j]=1;
else if(j==i) sb[i][j]=1;
else sb[i][j]=sb[i-1][j-1]+sb[i-1][j];
if(i*(i-1)/2+j==n) nt1=sb[i][j];
if(i*(i-1)/2+j==m) nt2=sb[i][j];
if(nt1!=-1&&nt2!=-1){
cout<<cyb(nt1,nt2);
return 0;
}
}
}
return 0;
}