N,K = map(int,input().split())
p=0
for i in range(1,N+1):
    jo = 0
    while True:
        if i*(2**jo) >= K:
            break
        jo += 1
    p += (1/N) * (1/2)**jo
print(p) N,K = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split K p=0 p 0 for i in range(1,N+1):
    jo = 0
    while True:
        if i*(2**jo) >= K:
            break
        jo += 1
    p += (1/N) * (1/2)**jo i range(1,N+1) range 1 N+1 N 1 jo = 0 jo 0 while True:
        if i*(2**jo) >= K:
            break
        jo += 1
     True if i*(2**jo) >= K:
            break
         i*(2**jo) >= K i*(2**jo) i 2**jo 2 jo K break jo += 1 jo 1 p += (1/N) * (1/2)**jo p (1/N) * (1/2)**jo 1/N 1 N (1/2)**jo 1/2 1 2 jo print(p) print p p += (1/N) * (1/2)**jo (1/N) * (1/2)**jo p N,K = map(int,input().split()) map(int,input().split()) N K = map(int,input().split()) map(int,input().split()) K jo += 1 1 jo jo = 0 0 jo p=0 0 p
N,K = map(int,input().split())
p=0
for i in range(1,N+1):
    jo = 0
    while True:
        if i*(2**jo) >= K:
            break
        jo += 1
    p += (1/N) * (1/2)**jo
print(p)
