from math import gcd INF = 1<<60 X, Y, MOD = map(int, input().split()) ans = 0 for i in range(1, INF): if X < 1+i*2: break rem = X-(1+i*2) ans += Y*(rem+1)%MOD ans %= MOD for i in range(1, INF): if Y < 1+i*2: break rem = Y-(1+i*2) ans += X*(rem+1)%MOD ans %= MOD X2, Y2 = (X+1)//2, (Y+1)//2 for m in range(1, 2001): for n in range(1, m+1): if gcd(m, n) == 1 and (m+n)%2 == 1: a, b = m**2-n**2, 2*m*n for i in range(1, INF): c, d = a*i, b*i if (X < 1+c*2 or Y < 1+d*2) and (X < 1+d*2 or Y < 1+c*2): break if 1+c*2 <= X and 1+d*2 <= Y: rem1 = X-(1+c*2) rem2 = Y-(1+d*2) ans += (rem1+1)*(rem2+1)%MOD*2%MOD ans %= MOD if 1+d*2 <= X and 1+c*2 <= Y: rem1 = X-(1+d*2) rem2 = Y-(1+c*2) ans += (rem1+1)*(rem2+1)%MOD*2%MOD ans %= MOD ans *= 2 ans %= MOD print(ans)