#!/usr/bin/python3 # Výpočet kombinačního čísla def comb(n, k): if k > n: return 0 if k > n/2: k = n - k c = 1 for i in range(k): c = c * (n-i) // (i+1) return c # Výpočet p_k(0,B) def pk(B, k): # Okrajové případy if B < 0: return 0 if k == 0: return 1 if B == 0: return 0 # Najdeme nejvyšší jedničku h = 1 while (B >> h) > 1: h += 1 c = comb(h, k) p = 0 # Hledáme další jedničky a skáčeme po kombinačních číslech # Invariant: c = {h \over k}, p = průběžný součet while h > 0 and k > 0: if B & (2**h) != 0: B -= 2**h p += c c = c * k // h k -= 1 else: c = c * (h-k) // h h -= 1 # Zbývající kombinační číslo if c != 0: p += 1 return p A, B, k = map(int, input().split()) print( pk(B,k) - pk(A-1,k) )