import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    double count;
    for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    }
    ans/=(double)n;
    ans/=131072;
    System.out.println(ans);
  }
} import java.util.*; util.* java public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    double count;
    for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    }
    ans/=(double)n;
    ans/=131072;
    System.out.println(ans);
  }
} Main public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    double count;
    for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    }
    ans/=(double)n;
    ans/=131072;
    System.out.println(ans);
  } main {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    double count;
    for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    }
    ans/=(double)n;
    ans/=131072;
    System.out.println(ans);
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int k = sc.nextInt(); k sc.nextInt() sc.nextInt sc double ans = 0; ans 0 double count; count for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    } int i = 1; int i = 1; i 1 i<=n i n i++ i++ i {//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    } {//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    } count = 0 count 0 int point = i; point i while(point<k){
        point*=2;
        count++;
      } point<k point k {
        point*=2;
        count++;
      } point*=2 point 2 count++ count point = 1 point 1 while(count!=17){
        count++;
        point*=2;
      } count!=17 count 17 {
        count++;
        point*=2;
      } count++ count point*=2 point 2 ans+=point ans point ans/=(double)n ans (double)n ans/=131072 ans 131072 System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    double count;
    for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    }
    ans/=(double)n;
    ans/=131072;
    System.out.println(ans);
  }
} public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    double count;
    for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    }
    ans/=(double)n;
    ans/=131072;
    System.out.println(ans);
  }
} Main
import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    double count;
    for(int i = 1;i<=n;i++){//saikoro no me
      count = 0;
      int point = i;
      while(point<k){
        point*=2;
        count++;
      }
      point = 1;
      while(count!=17){
        count++;
        point*=2;
      }
      ans+=point;
    }
    ans/=(double)n;
    ans/=131072;
    System.out.println(ans);
  }
}
