#include<bits/stdc++.h>
#define FOR(i,a,b) for(long long int i=(a);i<=(b);++i)
#define NFOR(i,a,b) for(long long int i=(a);i>=(b);--i)
#define pb push_back
#define ll long long
#define F first
#define S second
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL)
#define MOD 1000000007
using namespace std;
//ll prime[10000007];
//vector<ll>stprime;
//ll fastpow(ll base, ll exp) {ll res=1;while(exp>0) {if(exp%2==1) res=(res*base)%MOD;base=(base*base)%MOD;exp/=2;}return res%MOD;}
//void sieve(){memset(prime,1,sizeof(prime));prime[0]=0;prime[1]=0;for(ll i=2;i*i<=10000000;++i){if(prime[i]){for(ll j=i*i;j<=10000000;j+=i)prime[j]=0;}}FOR(i,1,1000000){if(prime[i])stprime.pb(i);}}
//bool comp(const ll &a,const ll &b){if(a>b)return true;else return false;}
//**********************************************************************************************************************************************//
int main()
{

    fast;
    ll t,n,h,q,x,y,w,m;
     cin>>n>>m;
     ll temp=m;
    if(m>=n)
        {cout<<n<<endl;return 0;}
    m=n-m;
    ll him=pow(1+8*m,0.5);
    if(him*him!=1+8*m)
      him++;
    him-=1;
    ll temp1=him;
    him/=2;
    if(temp1%2!=0)him++;
    //cout<<him<<endl;
    ll ans=temp+him;
    cout<<ans<<endl;









return 0;
}