class CSuper{public: virtual int Get() = 0;};
class CSub : public CSuper{private: int i; public: CSub(int v){i = v;} ~CSub{} virtual int Get(){return i}};
int main(int argc, char **argv){
FILE *in = fopen("input.txt", "r");
FILE *out = fopen("output.txt", "w");
char buff[1024];
int m; //出題元の値
int b; //バッファ
int c; //釣り
int num = 0; //枚数
if(!in || !out) return -1;
fgets(buff, sizeof(buff), in);
m = atoi(buff);
c = 1000 - m;
if(b = c / 500){
num += b;
c = c - b * 500;
}
if(b = c / 100){
num += b;
c = c - b * 100;
}
if(b = c / 50){
num += b;
c = c - b * 50;
}
if(b = c / 10){
num += b;
c = c - b * 10;
}
if(b = c / 5){
num += b;
c = c - b * 5;
}
if(b = c / 1){
num += b;
c = c - b * 1;
}