#include<bits/stdc++.h>
using namespace std;
#define int long long int
#define mp(a,b) make_pair(a,b)
#define vi vector<int>
#define mii map<int,int>
#define mpi map<pair<int,int>,int>
#define vp vector<pair<int,int> >
#define pb(a) push_back(a)
#define fr(i,n) for(i=0;i<n;i++)
#define rep(i,a,n) for(i=a;i<n;i++)
#define F first
#define S second
#define endl "\n"
#define fast std::ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define mod 1000000007
#define dom 998244353
#define pi 3.14159265
#define sl(a) (int)a.length()
#define sz(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define pii pair<int,int> 
#define mini 2000000000000000000
#define time_taken 1.0 * clock() / CLOCKS_PER_SEC
//mt19937_64 mt(chrono::steady_clock::now().time_since_epoch().count());
//primes for hashing 937, 1013
template<typename T, typename U> static inline void amin(T &x, U y) 
{ 
    if (y < x) 
        x = y; 
}
template<typename T, typename U> static inline void amax(T &x, U y) 
{ 
    if (x < y) 
        x = y; 
}
void shikhar7s(int cas)
{
    int x,y;
    cin>>x>>y;
    if(!x)
        cout<<y<<endl;
    else if(x>0)
    {
        if(y<3)
            cout<<y+1<<endl;
        else
            cout<<y+min(2*x,y)-1<<endl;
    }
    else
    {
        if(y<3)
            cout<<y+1<<endl;
        else
            cout<<y+min(1-2*x,y)-1<<endl;
    }
}
signed main()
{
    fast;
    //freopen("input.txt", "rt", stdin);
    //freopen("output.txt", "wt", stdout);
    int t=1;
    //cin>>t;
    int cas=1;
    while(cas<=t)
    {
    shikhar7s(cas);
    cas++;
    }
    return 0;
}
#include <bits/stdc++.h>
using namespace std;
int _ = (cout << fixed << setprecision(9), cin.tie(0), ios::sync_with_stdio(0));
using Int = long long;
int main() {
    Int B, C; cin >> B >> C;
    vector<pair<Int, Int>> sec;
    sec.emplace_back(B - C/2, B);
    sec.emplace_back(-B - (C-1)/2, -B);
    sec.emplace_back(-B, -B + (C-1)/2);
    sec.emplace_back(B, B + (C-2)/2);
    Int ans = 0, rmax = LLONG_MIN;
    sort(begin(sec), end(sec));
    for (auto [l, r] : sec) {
        l = max(l, rmax + 1);
        ans += r - l + 1;
        rmax = max(rmax, r);
    }
    cout << ans << endl;
    return 0;
}