#include long gcd(long a, long b) { return b == 0 ? a : gcd(b, a % b); } long mul(long a, long b, long m) { if( b == 0 ) return 0; return (mul((a << 1) % m, b >> 1, m) + (b & 1) * a) % m; } int main() { // for(int i = 1; i <= 100; ++i) { // for(int j = 1; j <= 100; ++j) { // for(int k = 1; k <= 100; ++k) { // if( mul(i, j, k) != (i * j) % k ) { // printf("%d %d %d\n", i, j, k); // } // } // } // } long a, b; scanf("%ld %ld", &a, &b); long x = a + b; long y = mul(a, b, a + b); printf("%ld\n", gcd(x, y)); return 0; }