#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n;
LL C(int a,int b){//计算C(a,b)组合数计算
LL res = 1;
for(int i=a,j=1;j<=b;i--,j++){
res = res*i/j;
//当a很大的时候如果在一次计算中,res>n再进行计算也还是大于n
//只要一发现发现大于n了马上返回,防止计算过程中数值超过longlong类型
if(res>n) return res;//(一定是不符合条件的情况)
}
return res;
}
bool check(int k){//对斜行进行二分,即对C(2k,k)的2k(这一行的元素个数)进行二分
LL l=k*2,r=max(l,n);//l为斜行最小的数,r(大于即可)为斜行最大的数
while(l<r){
LL mid=l+r>>1;
if(C(mid,k)>=n) r=mid;
else l=mid+1;
}
if(C(r,k)!=n) return false;
//要看完整的杨辉三角,等差数列求和:a0=1,ak=2k
//例如目标是找15在C(6,2)的位置,实际上是在第7行
//需要计算前6行共有多少个元素,然后再加上第7行在15之前的元素个数
cout<< r*(1+r)/2+k+1;
return true;
}
int main(){
scanf("%d",&n);
for(int i=16;i>=0;i--){
if(check(i)) break;
}
}