#include <bits/stdc++.h> 
using namespace std;
using ll = long long;
template<typename T> using v2 = vector<vector<T>>;
template<typename T> inline v2<T> fill(int r, int c, const T& t){
    return v2<T>(r, vector<T>(c, t));
}
#define F first
#define S second

void solve(){
    ll n;
    cin >> n;

    ll lo = 0;
    ll hi = 2e9;
    ll highest = -1;
    while(lo <= hi){
        ll mid = (lo+hi)/2;
        ll sum = (mid*(mid+1))/2;
        if(sum <= n+1){
            highest = mid;
            lo = mid+1;
        }
        else{
            hi = mid-1;
        }
    }
    assert(highest != -1);

    ll ans = n - highest + 1;
    cout << ans << "\n"; 
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    solve();
    return 0;
}
// Author: rifatrraazz
// Time: 2021-05-10 10:25:19
// Problem: A - Century
// TL: 2000ms 		ML: 1024MB
// URL: https://atcoder.jp/contests/abc200/tasks/abc200_a

#include <bits/stdc++.h>

#define ll long long
#define pb push_back
#define ff first
#define ss second

#define yes cout << "Yes\n"
#define no cout << "No\n"
#define Case(i) cout << "Case " << int(i) << ": "
#define dbg(x) cout << #x << " = " << x << endl
#define dbg2(x, y) cout << #x << " = " << x << "\t" << #y << " = " << y << endl

#define lop(n) for (int i = 0; i < n; i++)
#define lopj(n) for (int j = 0; j < n; j++)
#define mem0(a) memset(a, 0, sizeof a)
#define mem1(a) memset(a, -1, sizeof a)

#define all(x) x.begin(), x.end()
#define sorta(x) sort(x.begin(), x.end())
#define sortd(x) sort(x.rbegin(), x.rend())
#define bitcount(x) __builtin_popcount(x)

#define vin vector<int>
#define vll vector<ll>
#define vst vector<string>
#define pll pair<ll, ll>
#define pii pair<int, int>
#define vpll vector<pll>
#define vpii vector<pii>

#define fread freopen("input.txt", "r", stdin)
#define fwrite freopen("output.txt", "w", stdout)
#define fastio  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

#define PI acos(-1.0)

using namespace std;

int main()
{
  fastio;

  int n; cin >> n;
  cout << (n + 99) / 100;

  return 0;
}

/* int dr[] = {1,-1,0,0}
   int dc[] = {0,0,1,-1}; */
// 4 Direction
/* int dr[] = {1,-1,0,0,1,1,-1,-1}
   int dc[] = {0,0,1,-1,1,-1,1,-1}; */
// 8 Direction
/* int dr[] = {1,-1,1,-1,2,2,-2,-2}
   int dc[] = {2,2,-2,-2,1,-1,1,-1}; */
// Knight Direction
/* int dr[] = {2,-2,1,1,-1,-1}
   int dc[] = {0,0,1,-1,1,-1}; */
// Hexagonal Direction

// bitmask operations
/*
int Set(int n, int pos) { return n = n | (1 << pos); }
int reset(int n, int pos) { return n = n & ~(1 << pos); }
bool check(int n, int pos) { return (bool)(n & (1 << pos)); }
*/
