#include <iostream>
#include <array>
#include <vector>
using namespace std;

constexpr int MAXCENTS = 100000;

array<long long, MAXCENTS + 1> ways;

void dp(vector<int> coins, int value)
{
	ways.fill(0);
	ways[0] = 1;
	for (int coin : coins) {
		for (int v = coin; v <= value; ++v) {
			ways[v] = ways[v - coin] + ways[v];
		}
	}
}

int main() 
{
	dp({1, 2, 5, 10, 25, 100, 200}, 500);
	cout << ways[500] << endl;
	return 0;
}