from itertools import product def adic(n): Ret = [0]*18 for i in range(18): if n%2 == 0: Ret[i] = 0 else: Ret[i] = 1 n //= 2 return Ret N, K = map( int, input().split()) check = 2**18 Nadic = adic(N) for i in range(18): if Nadic[i] == 0: check -= 2**i if check <= K: print("INF") else: D = [2**i for i in range(18) if Nadic[i] == 0 and 2**i <= K] ans = 0 P = len(D) for F in product( range(3), repeat = P): c = 0 for i in range(P): if F[i] == 1: c += D[i] if F[i] == 2: c -= D[i] if c <= K and c >= 0: ans += 1 print(ans)