#include using namespace std; long long T[ 1000 ]; long long J[ 1000 ]; long long X[ 1000 ]; int iT; int iJ; int iEnd; long long iSumT; long long iSumJ; int DiceJ( long long A[], const int iA, const int iEnd ) { int i; int j; int iNewE; iNewE = iEnd + 6; for( i = iA; i < iEnd; i++ ) X[ i + 1 ] = A[ i ]; for( i = iEnd + 1; i < iNewE; i++ ) X[ i ] = 0; for( i = iA; i < iEnd; i++ ) { for( j = 2; j <= 6; j++ ) { X[ i + j ] += A[ i ]; } } A[ iA ] = 0; for( i = iA + 1; i < iNewE; i++ ) A[ i ] = X[ i ]; return iA + 1; } int DiceT( long long A[], const int iA, const int iEnd ) { int i; int j; int iNewE; iNewE = iEnd + 6; for( i = iA; i < iEnd; i++ ) X[ i + 4 ] = A[ i ]; for( i = iEnd + 4; i < iNewE; i++ ) X[ i ] = 0; for( i = iA; i < iEnd; i++ ) { for( j = 5; j <= 6; j++ ) { X[ i + j ] += A[ i ]; } } A[ iA ] = 0; A[ iA + 1 ] = 0; A[ iA + 2 ] = 0; A[ iA + 3 ] = 0; for( i = iA + 4; i < iNewE; i++ ) A[ i ] = X[ i ]; return iA + 4; } int main() { int i; int a; int N; int K; long long iSum; long long iAll; cin >> N; cin >> K; J[ 0 ] = 1; J[ 1 ] = 1; J[ 2 ] = 1; J[ 3 ] = 1; J[ 4 ] = 1; J[ 5 ] = 1; iJ = 0; iSumJ = 6; if( K > 0 ) { T[ 0 ] = 0; T[ 1 ] = 0; T[ 2 ] = 0; T[ 3 ] = 1; T[ 4 ] = 1; T[ 5 ] = 1; iT = 3; iSumT = 3; } else { T[ 0 ] = 1; T[ 1 ] = 1; T[ 2 ] = 1; T[ 3 ] = 1; T[ 4 ] = 1; T[ 5 ] = 1; iT = 0; iSumT = 6; } iEnd = 6; for( i = 1; i < K; i++ ) { DiceT( T, iT, iEnd ); iT += 4; iEnd += 6; iSumT *= 3; } i = K; if( K == 0 ) i++; for(; i < N; i++ ) { DiceJ( T, iT, iEnd ); iT++; iEnd += 6; iSumT *= 6; } iEnd = 6; for( i = 1; i < N; i++ ) { DiceJ( J, iJ, iEnd ); iJ++; iEnd += 6; iSumJ *= 6; } X[ iEnd ] = 0; for( i = iEnd - 1; i >= 0; i-- ) { X[ i ] = X[ i + 1 ] + T[ i ]; } iAll = iSumT * iSumJ; iSum = 0; for( i = iJ; i < iEnd; i++ ) { iSum += J[ i ] * X[ i + 1 ]; } cout << (double) iSum / iAll << endl; return 0; }