import sys, time, random from collections import deque, Counter, defaultdict input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 63 - 1 mod = 998244353 from math import gcd def inv_gcd(a,b): a=a%b if a==0: return (b,0) s=b;t=a m0=0;m1=1 while(t): u=s//t s-=t*u m0-=m1*u s,t=t,s m0,m1=m1,m0 if m0<0: m0+=b//s return (s,m0) def inv_mod(x,m): assert 1<=m z=inv_gcd(x,m) assert z[0]==1 return z[1] B, C = mi() S = set() ans = 0 for p1 in range(0, B): for p2 in range(0, B): if gcd(p1, B) != 1 or p2 % C != 0 or (p1, p2) in S: continue ans += 1 if ans > 100: print('100+'), exit() for r1 in range(0, B): for r2 in range(0, B): if gcd(r1, B) != 1 or r2 % C != 0: continue q1 = p1 % B q2 = (-r2 * (p1 * r2 + p2) * inv_mod(r1, B)) % B S.add((q1, q2)) print(ans)