1 #include <iostream>
   2 #include <sstream>
   3 #include <string>
   4 #include <algorithm>
   5 #include <vector>
   6 #include <map>
   7 using namespace std;
   8 
   9 #define GI ({int _t; scanf("%d", &_t); _t;})
  10 #define FOR(i, a, b) for (int i=a; i<b; i++)
  11 #define REP(i, a) FOR(i, 0, a)
  12 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();}
  13 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;}
  14 #define DBG(x) cout << #x << "::" << x << endl;
  15 #define DBGV(_v) { REP(_i, _v.size()) { cout << _v[_i] << "\t";} cout << endl;}
  16 
  17 string tens(int digit) {
  18 	string res = "";
  19 	if (digit <= 3) {
  20 		REP(i, digit) res += "x";
  21 		return res;
  22 	}
  23 	if (digit >= 4 && digit <= 8) {
  24 		FOR(i, digit, 5) res += "x";
  25 		res += "l";
  26 		FOR(i, 5, digit) res += "x";
  27 		return res;
  28 	}
  29 	if (digit == 9) return "xc";
  30 }
  31 
  32 string units(int digit) {
  33 	string res = "";
  34 	if (digit <= 3) {
  35 		REP(i, digit) res += "i";
  36 		return res;
  37 	}
  38 	if (digit >= 4 && digit <= 8) {
  39 		FOR(i, digit, 5) res += "i";
  40 		res += "v";
  41 		FOR(i, 5, digit) res += "i";
  42 		return res;
  43 	}
  44 	if (digit == 9) return "ix";
  45 }
  46 
  47 string decimaltoroman(int num) {
  48 	//Works till 100;
  49 	string res = "";
  50 	if (num == 100) return "c";
  51 	int u = num%10, t = num/10;
  52 	if (tens > 0) {
  53 		return tens(t) + units(u);
  54 	}
  55 	else {
  56 		return units(u);
  57 	}
  58 
  59 }
  60 
  61 int main() {
  62 	int num;
  63 	while (scanf ("%d", &num) != -1 && num != 0) {
  64 		map <char, int> res;
  65 		FOR(i, 1, num+1) {
  66 			string t = decimaltoroman(i);
  67 			REP(j, t.size()) {
  68 				res[t[j]]++;
  69 			}
  70 		}
  71 		printf("%d: %d i, %d v, %d x, %d l, %d c\n", num, res['i'], res['v'], res['x'], res['l'], res['c']);
  72 	}
  73 	return 0;
  74 }