#include <iostream>
#include <string>

std::string UpTo19(uint32_t val, bool isOne=false)
{
	switch(val)
	{
		case 0: return "Null";
		case 1:
			if(isOne)
				return "eins";
			else
				return "ein";
		case 2:	return "zwei";
		case 3:	return "drei";
		case 4:	return "vier";
		case 5:	return "fünf";
		case 6:	return "sechs";
		case 7:	return "sieben";
		case 8:	return "acht";
		case 9:	return "neun";
		case 10:return "zehn";
		case 11:return "elf";
		case 12:return "zwölf";
		case 16:return "sechzehn";
		case 17:return "siebzehn";
		default:return UpTo19(val%10)+"zehn";
	}
}

std::string UpTo99(uint32_t val, bool isOne=false)
{
	if(val<20) return UpTo19(val, isOne);
	std::string word;
	if(val%10)
		word=UpTo19(val%10, false)+"und";

	switch(val/10)
	{
		case 2: word+="zwanzig";  break;
		case 3: word+="dreissig";  break;
		case 4: word+="vierzig";  break;
		case 5: word+="fünfzig";  break;
		case 6: word+="sechzig";  break;
		case 7: word+="siebzig";  break;
		case 8: word+="achtzig";  break;
		case 9: word+="neunzig";  break;
	}
	return word;
}

int main() {
	for(int i=0; i<100; ++i)
	{
		std:: cout << UpTo99(i, i==1) << "\n";
	}
}