#include <bits/stdc++.h>
using namespace std ;
long long C( int n , int k ){
if ( k == 0 || k == n )
return 1 ;
if ( k < 0 || k > n )
return 0 ;
k = min( k , n - k ) ;
vector<vector<long long > > c ( ( n + 1 ) , vector<long long> ( k + 1 , 0 ) ) ;
for ( int i = 0 ; i <= n ; i++ ){
for ( int j = 0 ; j <= min( i , k ) ; j++ ){
if ( i == j || j == 0 )
c[i][j] = 1 ;
else {
c[i][j] = c[i-1][j-1] + c[i-1][j] ;
}
}
}
return c[n][k] ;
}
int main(){
int n , k ;
cin >> n >> k ;
long long x = ( 1ll << n ) - C(n , k ) + 1 ;
cout << x ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOwpsb25nIGxvbmcgQyggaW50IG4gLCBpbnQgayApewogICAgaWYgKCBrID09IDAgfHwgayA9PSBuICkKICAgICAgICByZXR1cm4gMSA7CiAgICBpZiAoIGsgPCAwIHx8IGsgPiBuICkKICAgICAgICByZXR1cm4gMCA7CiAgICBrID0gbWluKCBrICwgIG4gLSBrICkgOwogICAgdmVjdG9yPHZlY3Rvcjxsb25nIGxvbmcgPiA+ICBjICggKCBuICsgMSApICwgdmVjdG9yPGxvbmcgbG9uZz4gKCBrICsgMSAsIDAgKSApIDsKICAgIGZvciAoIGludCBpID0gMCA7IGkgPD0gbiA7IGkrKyApewogICAgICAgIGZvciAoIGludCBqID0gMCA7IGogPD0gbWluKCBpICwgayApIDsgaisrICl7CiAgICAgICAgICAgIGlmICggaSA9PSBqIHx8IGogPT0gMCApCiAgICAgICAgICAgICAgICBjW2ldW2pdID0gMSA7CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgY1tpXVtqXSA9IGNbaS0xXVtqLTFdICsgY1tpLTFdW2pdIDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjW25dW2tdIDsKfQppbnQgbWFpbigpewogICAgaW50IG4gLCBrICA7CiAgICBjaW4gPj4gbiA+PiBrIDsKICAgIGxvbmcgbG9uZyB4ID0gKCAxbGwgPDwgbiApIC0gQyhuICwgayApICsgMSA7CiAgICBjb3V0IDw8IHggOwoKfQo=