//炉石卡牌随机3~6点伤害
//输入:卡牌张数n,野怪生命值h
//输出:打怪胜利概率,精确到小数点后6位
#include<iostream>
#include<iomanip>//控制cout小数点的头文件
#include<cmath>
using namespace std;
int cnt=0;
int a[4]={3,4,5,6};
void findTimes(int n,int h){
if(n>1){
for(int i=0;i<4;++i){
findTimes(n-1,h-a[i]);
}
}
else{
for(int i=0;i<4;++i){
if(a[i]>=h)
++cnt;
}
}
}
int main(int argc, char** argv) {
int n,h;
int sum=0;
cin>>n>>h;
findTimes(n,h);
float probability=cnt*1.0/pow(4,n);
cout<<fixed<<setprecision(6)<<probability<<endl;//设置输入的格式,其后一直有效
return 0;
}