def kaisu(n,k):
  if n>=K:
    return k
  else:
    return kaisu(2*n,k+1)
N,K=map(int,input().split())
ans=0
for i in range(1,N+1):
  ans+=pow(2,20-kaisu(i,0))
ans=ans/(pow(2,20))
print(ans/N) def kaisu(n,k):
  if n>=K:
    return k
  else:
    return kaisu(2*n,k+1) kaisu if n>=K:
    return k
  else:
    return kaisu(2*n,k+1) n>=K n K return k k return kaisu(2*n,k+1) kaisu(2*n,k+1) kaisu 2*n 2 n k+1 k 1 n n k k N,K=map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split K ans=0 ans 0 for i in range(1,N+1):
  ans+=pow(2,20-kaisu(i,0)) i range(1,N+1) range 1 N+1 N 1 ans+=pow(2,20-kaisu(i,0)) ans pow(2,20-kaisu(i,0)) pow 2 20-kaisu(i,0) 20 kaisu(i,0) kaisu i 0 ans=ans/(pow(2,20)) ans ans/(pow(2,20)) ans pow(2,20) pow 2 20 print(ans/N) print ans/N ans N ans=ans/(pow(2,20)) ans/(pow(2,20)) ans ans+=pow(2,20-kaisu(i,0)) pow(2,20-kaisu(i,0)) ans N,K=map(int,input().split()) map(int,input().split()) N def kaisu(n,k):
  if n>=K:
    return k
  else:
    return kaisu(2*n,k+1) def kaisu(n,k):
  if n>=K:
    return k
  else:
    return kaisu(2*n,k+1) kaisu K=map(int,input().split()) map(int,input().split()) K ans=0 0 ans
def kaisu(n,k):
  if n>=K:
    return k
  else:
    return kaisu(2*n,k+1)
N,K=map(int,input().split())
ans=0
for i in range(1,N+1):
  ans+=pow(2,20-kaisu(i,0))
ans=ans/(pow(2,20))
print(ans/N)