n,k=map(int,input().split())
#n>=kの場合は最初のサイコロで勝ちになる可能性がある
if n>=k:
    ans=(n-k+1)/n#xはサイコロだけで勝ちになる確率
    for i in range(1,k):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j
else:
    ans=0
    for i in range(1,n+1):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j
print(ans) n,k=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split k if n>=k:
    ans=(n-k+1)/n#xはサイコロだけで勝ちになる確率
    for i in range(1,k):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j
else:
    ans=0
    for i in range(1,n+1):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j n>=k n k ans=(n-k+1)/n ans (n-k+1)/n n-k+1 n-k n k 1 n for i in range(1,k):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j i range(1,k) range 1 k j=0 j 0 while True:
            i*=2
            j+=1
            if i>=k:
                break
         True i*=2 i 2 j+=1 j 1 if i>=k:
                break
         i>=k i k break ans+=(1/n)*(0.5)**j ans (1/n)*(0.5)**j 1/n 1 n (0.5)**j 0.5 j ans=0 ans 0 for i in range(1,n+1):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j i range(1,n+1) range 1 n+1 n 1 j=0 j 0 while True:
            i*=2
            j+=1
            if i>=k:
                break
         True i*=2 i 2 j+=1 j 1 if i>=k:
                break
         i>=k i k break ans+=(1/n)*(0.5)**j ans (1/n)*(0.5)**j 1/n 1 n (0.5)**j 0.5 j print(ans) print ans j+=1 1 j ans=0 0 ans ans=(n-k+1)/n (n-k+1)/n ans j+=1 1 j j=0 0 j j=0 0 j ans+=(1/n)*(0.5)**j (1/n)*(0.5)**j ans i*=2 2 i k=map(int,input().split()) map(int,input().split()) k n,k=map(int,input().split()) map(int,input().split()) n i*=2 2 i ans+=(1/n)*(0.5)**j (1/n)*(0.5)**j ans
n,k=map(int,input().split())
#n>=kの場合は最初のサイコロで勝ちになる可能性がある
if n>=k:
    ans=(n-k+1)/n#xはサイコロだけで勝ちになる確率
    for i in range(1,k):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j
else:
    ans=0
    for i in range(1,n+1):
        j=0
        while True:
            i*=2
            j+=1
            if i>=k:
                break
        ans+=(1/n)*(0.5)**j
print(ans)