#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; #include<bits/stdc++.h> using namespace std; vector<ll> divisor(ll x){ set<ll> s; for(ll i=1;i*i<=x;i++){ if(x%i==0){ s.insert(i); s.insert(x/i); } } vector<ll> res; for(auto y:s) res.push_back(y); return res; } int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); ll n,k; cin>>n>>k; if(k==n*(n+1)/2){ cout<<0<<endl; return 0; } ll tmp=0; for(ll i=1;i<=n;i++){ tmp+=i; if(k==n*(n+1)/2-tmp){ cout<<1<<endl; return 0; } } tmp=0; for(ll i=n;i>=1;i--){ tmp+=i; if(k==n*(n+1)/2-tmp){ cout<<1<<endl; return 0; } } vector<ll> A=divisor(2*(n*(n+1)/2-k)); for(auto a:A){ ll b=2*(n*(n+1)/2-k)/a; if(a<b) continue; if((a-b+1)%2) continue; ll l=(a-b+1)/2; ll r=(a+b-1)/2; if(1<=l && l<=r && r<=n){ cout<<1<<endl; return 0; } } cout<<2<<endl; return 0; }