#include <bits/stdc++.h>
#define be(v) (v).begin(),(v).end()
#define pb(q) push_back(q)
typedef long long ll;
using namespace std;
const ll mod=1000000007;
#define doublecout(a) cout<<fixed<<setprecision(10)<<a<<endl;

int main() {
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(false);
    ll n,ans=0;
    cin>>n;
    while(n){
    	if(n>=25){
    		ans+=n/25;
    		n%=25;
    	}else if(n>=10){
    		ans+=n/10;
    		n%=10;
    	}else if(n>=5){
    		ans+=n/5;
    		n%=5;
    	}else{
    		ans+=n;
    		n=0;
    	}
    }
    cout << ans<<endl;
    return 0;
}


### Prompt

Please provide a CPP coded solution to the problem described below:

You want to make change for $ n $ cents. Assuming that you have infinite supply of coins of 1, 5, 10 and / or 25 cents coins respectively, find the minimum number of coins you need.

Constraints

* $ 1 \ le n \ le 10 ^ 9 $

Input


$ n $


The integer $ n $ is given in a line.

output

Print the minimum number of coins you need in a line.

Examples

Input

100


Output

4


Input

54321


Output

2175

### Response

```cpp
#include <bits/stdc++.h>
#define be(v) (v).begin(),(v).end()
#define pb(q) push_back(q)
typedef long long ll;
using namespace std;
const ll mod=1000000007;
#define doublecout(a) cout<<fixed<<setprecision(10)<<a<<endl;

int main() {
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(false);
    ll n,ans=0;
    cin>>n;
    while(n){
    	if(n>=25){
    		ans+=n/25;
    		n%=25;
    	}else if(n>=10){
    		ans+=n/10;
    		n%=10;
    	}else if(n>=5){
    		ans+=n/5;
    		n%=5;
    	}else{
    		ans+=n;
    		n=0;
    	}
    }
    cout << ans<<endl;
    return 0;
}


```