#include using namespace std; int dp[1000001]; int main(void) { cin.tie(0); ios::sync_with_stdio(false); int n; cin >> n; vector v; for(int i=2; ;i++) { int val = i*(i+1)/2; if(val > n) break; v.push_back(val); } memset(dp,-1,sizeof(dp)); dp[0] = 0; for(int i=0;i<=n;i++) { if(dp[i]==-1) continue; for(int j=0;j n) break; if(dp[k]==-1) { dp[k] = dp[i] + 1; } else { dp[k] = min(dp[k],dp[i] + 1); } } } int res = 1e9; for(int i=0;i<=n;i++) { if(dp[i]==-1) continue; int x = dp[i] + (n-i); res = min(res,x); } cout << res << '\n'; return 0; }