N,K = map(int,input().split())
possibility = 0


for i in range(1,N+1):
    count = 0
    point = i
    while(point <= K-1):
        point = point * 2
        count += 1
    possibility += 0.5**count

print(possibility / N) N,K = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split K possibility = 0 possibility 0 for i in range(1,N+1):
    count = 0
    point = i
    while(point <= K-1):
        point = point * 2
        count += 1
    possibility += 0.5**count i range(1,N+1) range 1 N+1 N 1 count = 0 count 0 point = i point i while(point <= K-1):
        point = point * 2
        count += 1
     point <= K-1 point K-1 K 1 point = point * 2 point point * 2 point 2 count += 1 count 1 possibility += 0.5**count possibility 0.5**count 0.5 count print(possibility / N) print possibility / N possibility N point = point * 2 point * 2 point count += 1 1 count N,K = map(int,input().split()) map(int,input().split()) N possibility += 0.5**count 0.5**count possibility K = map(int,input().split()) map(int,input().split()) K possibility = 0 0 possibility point = i i point count = 0 0 count
N,K = map(int,input().split())
possibility = 0


for i in range(1,N+1):
    count = 0
    point = i
    while(point <= K-1):
        point = point * 2
        count += 1
    possibility += 0.5**count

print(possibility / N)