// @adi28galaxyak
// Content:
#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector< vi > vii;
typedef pair<int, int> pii;
#define FF first
#define SS second
#define pb(v) push_back(v)
#define mp(x,y) make_pair(x, y)
#define s(n) scanf("%d",&n)
#define rep(i,start,end) for(int i = start;i<end;i++)
int p1, p2;
int n, m;
int dp[101][101][101];
int f(int n1, int n2, int nb){
int &P = dp[nb][n1][n2];
if(P!=-1) return P;
if(n1==0 and n2==0 and nb==0){
P = 0;
return P;
}
if(nb==0){
P = f(0, 0, n1);
return P;
}
P = 0;
for(int i = 1;i<=min(m, nb);i++){
P = max(P, nb+n1+n2 - f(n2, n1+i, nb-i));
}
return P;
}
int main(){
if(false) {
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
}
cin>>n>>m;
rep(i,0,101)
rep(j,0,101)
rep(k,0,101) dp[i][j][k] = -1;
cout<<f(0,0,n)<<endl;
}
Ly8gQGFkaTI4Z2FsYXh5YWsKLy8gQ29udGVudDoKCiNpbmNsdWRlICJiaXRzL3N0ZGMrKy5oIgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPCB2aSA+IHZpaTsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBwaWk7CiNkZWZpbmUgRkYgZmlyc3QKI2RlZmluZSBTUyBzZWNvbmQKI2RlZmluZSBwYih2KSBwdXNoX2JhY2sodikKI2RlZmluZSBtcCh4LHkpIG1ha2VfcGFpcih4LCB5KQoKI2RlZmluZSBzKG4pIHNjYW5mKCIlZCIsJm4pCiNkZWZpbmUgcmVwKGksc3RhcnQsZW5kKSBmb3IoaW50IGkgPSBzdGFydDtpPGVuZDtpKyspCgppbnQgcDEsIHAyOwppbnQgbiwgbTsKaW50IGRwWzEwMV1bMTAxXVsxMDFdOwoKaW50IGYoaW50IG4xLCBpbnQgbjIsIGludCBuYil7CiAgICBpbnQgJlAgPSBkcFtuYl1bbjFdW24yXTsKCiAgICBpZihQIT0tMSkgcmV0dXJuIFA7CiAgICBpZihuMT09MCBhbmQgbjI9PTAgYW5kIG5iPT0wKXsKICAgICAgICBQID0gMDsKICAgICAgICByZXR1cm4gUDsKICAgIH0KICAgIGlmKG5iPT0wKXsKICAgICAgICBQID0gZigwLCAwLCBuMSk7CiAgICAgICAgcmV0dXJuIFA7CiAgICB9CiAgICBQID0gMDsKICAgIGZvcihpbnQgaSA9IDE7aTw9bWluKG0sIG5iKTtpKyspewogICAgICAgIFAgPSBtYXgoUCwgbmIrbjErbjIgLSBmKG4yLCBuMStpLCBuYi1pKSk7CiAgICB9CiAgICByZXR1cm4gUDsKfQoKaW50IG1haW4oKXsKCWlmKGZhbHNlKSB7CgkJZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwoJCS8vZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7Cgl9CiAgICAKICAgIGNpbj4+bj4+bTsKICAgIHJlcChpLDAsMTAxKQogICAgICAgIHJlcChqLDAsMTAxKSAKICAgICAgICAgICAgcmVwKGssMCwxMDEpIGRwW2ldW2pdW2tdID0gLTE7CiAgICBjb3V0PDxmKDAsMCxuKTw8ZW5kbDsKfQoK