#include #include #include #include #define M 20 #define N 10000 char *num[]={ "", "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix", "x", "xi", "xii", "xiii", "xiv", "xv", "xvi", "xvii", "xviii", "xix", "xx", "xxi", "xxii", "xxiii", "xxiv", "xxv", "xxvi", "xxvii", "xxviii", "xxix", "xxx", "xxxi", "xxxii", "xxxiii", "xxxiv", "xxxv", "xxxvi", "xxxvii", "xxxviii", "xxxix", "xl", "xli", "xlii", "xliii", "xliv", "xlv", "xlvi", "xlvii", "xlviii", "xlix", "l", "li", "lii", "liii", "liv", "lv", "lvi", "lvii", "lviii", "lix", "lx", "lxi", "lxii", "lxiii", "lxiv", "lxv", "lxvi", "lxvii", "lxviii", "lxix", "lxx", "lxxi", "lxxii", "lxxiii", "lxxiv", "lxxv", "lxxvi", "lxxvii", "lxxviii", "lxxix", "lxxx", "lxxxi", "lxxxii", "lxxxiii", "lxxxiv", "lxxxv", "lxxxvi", "lxxxvii", "lxxxviii", "lxxxix", "xc", "xci", "xcii", "xciii", "xciv", "xcv", "xcvi", "xcvii", "xcviii", "xcix", "c", "ci", "cii", "ciii", "civ", "cv", "cvi", "cvii", "cviii", "cix", "cx", "cxi", "cxii", "cxiii", "cxiv", "cxv", "cxvi", "cxvii", "cxviii", "cxix", "cxx", "cxxi", "cxxii", "cxxiii", "cxxiv", "cxxv", "cxxvi", "cxxvii", "cxxviii", "cxxix", "cxxx", "cxxxi", "cxxxii", "cxxxiii", "cxxxiv", "cxxxv", "cxxxvi", "cxxxvii", "cxxxviii", "cxxxix", "cxl", "cxli", "cxlii", "cxliii", "cxliv", "cxlv", "cxlvi", "cxlvii", "cxlviii", "cxlix", "cl", "cli", "clii", "cliii", "cliv", "clv", "clvi", "clvii", "clviii", "clix", "clx", "clxi", "clxii", "clxiii", "clxiv", "clxv", "clxvi", "clxvii", "clxviii", "clxix", "clxx", "clxxi", "clxxii", "clxxiii", "clxxiv", "clxxv", "clxxvi", "clxxvii", "clxxviii", "clxxix", "clxxx", "clxxxi", "clxxxii", "clxxxiii", "clxxxiv", "clxxxv", "clxxxvi", "clxxxvii", "clxxxviii", "clxxxix", "cxc", "cxci", "cxcii", "cxciii", "cxciv", "cxcv", "cxcvi", "cxcvii", "cxcviii", "cxcix", "cc", "cci", "ccii", "cciii", "cciv", "ccv", "ccvi", "ccvii", "ccviii", "ccix", "ccx", "ccxi", "ccxii", "ccxiii", "ccxiv", "ccxv", "ccxvi", "ccxvii", "ccxviii", "ccxix", "ccxx", "ccxxi", "ccxxii", "ccxxiii", "ccxxiv", "ccxxv", "ccxxvi", "ccxxvii", "ccxxviii", "ccxxix", "ccxxx", "ccxxxi", "ccxxxii", "ccxxxiii", "ccxxxiv", "ccxxxv", "ccxxxvi", "ccxxxvii", "ccxxxviii", "ccxxxix", "ccxl", "ccxli", "ccxlii", "ccxliii", "ccxliv", "ccxlv", "ccxlvi", "ccxlvii", "ccxlviii", "ccxlix", "ccl", "ccli", "cclii", "ccliii", "ccliv", "cclv", "cclvi", "cclvii", "cclviii", "cclix", "cclx", "cclxi", "cclxii", "cclxiii", "cclxiv", "cclxv", "cclxvi", "cclxvii", "cclxviii", "cclxix", "cclxx", "cclxxi", "cclxxii", "cclxxiii", "cclxxiv", "cclxxv", "cclxxvi", "cclxxvii", "cclxxviii", "cclxxix", "cclxxx", "cclxxxi", "cclxxxii", "cclxxxiii", "cclxxxiv", "cclxxxv", "cclxxxvi", "cclxxxvii", "cclxxxviii", "cclxxxix", "ccxc", "ccxci", "ccxcii", "ccxciii", "ccxciv", "ccxcv", "ccxcvi", "ccxcvii", "ccxcviii", "ccxcix", "ccc", "ccci", "cccii", "ccciii", "ccciv", "cccv", "cccvi", "cccvii", "cccviii", "cccix", "cccx", "cccxi", "cccxii", "cccxiii", "cccxiv", "cccxv", "cccxvi", "cccxvii", "cccxviii", "cccxix", "cccxx", "cccxxi", "cccxxii", "cccxxiii", "cccxxiv", "cccxxv", "cccxxvi", "cccxxvii", "cccxxviii", "cccxxix", "cccxxx", "cccxxxi", "cccxxxii", "cccxxxiii", "cccxxxiv", "cccxxxv", "cccxxxvi", "cccxxxvii", "cccxxxviii", "cccxxxix", "cccxl", "cccxli", "cccxlii", "cccxliii", "cccxliv", "cccxlv", "cccxlvi", "cccxlvii", "cccxlviii", "cccxlix", "cccl", "cccli", "ccclii", "cccliii", "cccliv", "ccclv", "ccclvi", "ccclvii", "ccclviii", "ccclix", "ccclx", "ccclxi", "ccclxii", "ccclxiii", "ccclxiv", "ccclxv", "ccclxvi", "ccclxvii", "ccclxviii", "ccclxix", "ccclxx", "ccclxxi", "ccclxxii", "ccclxxiii", "ccclxxiv", "ccclxxv", "ccclxxvi", "ccclxxvii", "ccclxxviii", "ccclxxix", "ccclxxx", "ccclxxxi", "ccclxxxii", "ccclxxxiii", "ccclxxxiv", "ccclxxxv", "ccclxxxvi", "ccclxxxvii", "ccclxxxviii", "ccclxxxix", "cccxc", "cccxci", "cccxcii", "cccxciii", "cccxciv", "cccxcv", "cccxcvi", "cccxcvii", "cccxcviii", "cccxcix", "cd", "cdi", "cdii", "cdiii", "cdiv", "cdv", "cdvi", "cdvii", "cdviii", "cdix", "cdx", "cdxi", "cdxii", "cdxiii", "cdxiv", "cdxv", "cdxvi", "cdxvii", "cdxviii", "cdxix", "cdxx", "cdxxi", "cdxxii", "cdxxiii", "cdxxiv", "cdxxv", "cdxxvi", "cdxxvii", "cdxxviii", "cdxxix", "cdxxx", "cdxxxi", "cdxxxii", "cdxxxiii", "cdxxxiv", "cdxxxv", "cdxxxvi", "cdxxxvii", "cdxxxviii", "cdxxxix", "cdxl", "cdxli", "cdxlii", "cdxliii", "cdxliv", "cdxlv", "cdxlvi", "cdxlvii", "cdxlviii", "cdxlix", "cdl", "cdli", "cdlii", "cdliii", "cdliv", "cdlv", "cdlvi", "cdlvii", "cdlviii", "cdlix", "cdlx", "cdlxi", "cdlxii", "cdlxiii", "cdlxiv", "cdlxv", "cdlxvi", "cdlxvii", "cdlxviii", "cdlxix", "cdlxx", "cdlxxi", "cdlxxii", "cdlxxiii", "cdlxxiv", "cdlxxv", "cdlxxvi", "cdlxxvii", "cdlxxviii", "cdlxxix", "cdlxxx", "cdlxxxi", "cdlxxxii", "cdlxxxiii", "cdlxxxiv", "cdlxxxv", "cdlxxxvi", "cdlxxxvii", "cdlxxxviii", "cdlxxxix", "cdxc", "cdxci", "cdxcii", "cdxciii", "cdxciv", "cdxcv", "cdxcvi", "cdxcvii", "cdxcviii", "cdxcix", "d", "di", "dii", "diii", "div", "dv", "dvi", "dvii", "dviii", "dix", "dx", "dxi", "dxii", "dxiii", "dxiv", "dxv", "dxvi", "dxvii", "dxviii", "dxix", "dxx", "dxxi", "dxxii", "dxxiii", "dxxiv", "dxxv", "dxxvi", "dxxvii", "dxxviii", "dxxix", "dxxx", "dxxxi", "dxxxii", "dxxxiii", "dxxxiv", "dxxxv", "dxxxvi", "dxxxvii", "dxxxviii", "dxxxix", "dxl", "dxli", "dxlii", "dxliii", "dxliv", "dxlv", "dxlvi", "dxlvii", "dxlviii", "dxlix", "dl", "dli", "dlii", "dliii", "dliv", "dlv", "dlvi", "dlvii", "dlviii", "dlix", "dlx", "dlxi", "dlxii", "dlxiii", "dlxiv", "dlxv", "dlxvi", "dlxvii", "dlxviii", "dlxix", "dlxx", "dlxxi", "dlxxii", "dlxxiii", "dlxxiv", "dlxxv", "dlxxvi", "dlxxvii", "dlxxviii", "dlxxix", "dlxxx", "dlxxxi", "dlxxxii", "dlxxxiii", "dlxxxiv", "dlxxxv", "dlxxxvi", "dlxxxvii", "dlxxxviii", "dlxxxix", "dxc", "dxci", "dxcii", "dxciii", "dxciv", "dxcv", "dxcvi", "dxcvii", "dxcviii", "dxcix", "dc", "dci", "dcii", "dciii", "dciv", "dcv", "dcvi", "dcvii", "dcviii", "dcix", "dcx", "dcxi", "dcxii", "dcxiii", "dcxiv", "dcxv", "dcxvi", "dcxvii", "dcxviii", "dcxix", "dcxx", "dcxxi", "dcxxii", "dcxxiii", "dcxxiv", "dcxxv", "dcxxvi", "dcxxvii", "dcxxviii", "dcxxix", "dcxxx", "dcxxxi", "dcxxxii", "dcxxxiii", "dcxxxiv", "dcxxxv", "dcxxxvi", "dcxxxvii", "dcxxxviii", "dcxxxix", "dcxl", "dcxli", "dcxlii", "dcxliii", "dcxliv", "dcxlv", "dcxlvi", "dcxlvii", "dcxlviii", "dcxlix", "dcl", "dcli", "dclii", "dcliii", "dcliv", "dclv", "dclvi", "dclvii", "dclviii", "dclix", "dclx", "dclxi", "dclxii", "dclxiii", "dclxiv", "dclxv", "dclxvi", "dclxvii", "dclxviii", "dclxix", "dclxx", "dclxxi", "dclxxii", "dclxxiii", "dclxxiv", "dclxxv", "dclxxvi", "dclxxvii", "dclxxviii", "dclxxix", "dclxxx", "dclxxxi", "dclxxxii", "dclxxxiii", "dclxxxiv", "dclxxxv", "dclxxxvi", "dclxxxvii", "dclxxxviii", "dclxxxix", "dcxc", "dcxci", "dcxcii", "dcxciii", "dcxciv", "dcxcv", "dcxcvi", "dcxcvii", "dcxcviii", "dcxcix", "dcc", "dcci", "dccii", "dcciii", "dcciv", "dccv", "dccvi", "dccvii", "dccviii", "dccix", "dccx", "dccxi", "dccxii", "dccxiii", "dccxiv", "dccxv", "dccxvi", "dccxvii", "dccxviii", "dccxix", "dccxx", "dccxxi", "dccxxii", "dccxxiii", "dccxxiv", "dccxxv", "dccxxvi", "dccxxvii", "dccxxviii", "dccxxix", "dccxxx", "dccxxxi", "dccxxxii", "dccxxxiii", "dccxxxiv", "dccxxxv", "dccxxxvi", "dccxxxvii", "dccxxxviii", "dccxxxix", "dccxl", "dccxli", "dccxlii", "dccxliii", "dccxliv", "dccxlv", "dccxlvi", "dccxlvii", "dccxlviii", "dccxlix", "dccl", "dccli", "dcclii", "dccliii", "dccliv", "dcclv", "dcclvi", "dcclvii", "dcclviii", "dcclix", "dcclx", "dcclxi", "dcclxii", "dcclxiii", "dcclxiv", "dcclxv", "dcclxvi", "dcclxvii", "dcclxviii", "dcclxix", "dcclxx", "dcclxxi", "dcclxxii", "dcclxxiii", "dcclxxiv", "dcclxxv", "dcclxxvi", "dcclxxvii", "dcclxxviii", "dcclxxix", "dcclxxx", "dcclxxxi", "dcclxxxii", "dcclxxxiii", "dcclxxxiv", "dcclxxxv", "dcclxxxvi", "dcclxxxvii", "dcclxxxviii", "dcclxxxix", "dccxc", "dccxci", "dccxcii", "dccxciii", "dccxciv", "dccxcv", "dccxcvi", "dccxcvii", "dccxcviii", "dccxcix", "dccc", "dccci", "dcccii", "dccciii", "dccciv", "dcccv", "dcccvi", "dcccvii", "dcccviii", "dcccix", "dcccx", "dcccxi", "dcccxii", "dcccxiii", "dcccxiv", "dcccxv", "dcccxvi", "dcccxvii", "dcccxviii", "dcccxix", "dcccxx", "dcccxxi", "dcccxxii", "dcccxxiii", "dcccxxiv", "dcccxxv", "dcccxxvi", "dcccxxvii", "dcccxxviii", "dcccxxix", "dcccxxx", "dcccxxxi", "dcccxxxii", "dcccxxxiii", "dcccxxxiv", "dcccxxxv", "dcccxxxvi", "dcccxxxvii", "dcccxxxviii", "dcccxxxix", "dcccxl", "dcccxli", "dcccxlii", "dcccxliii", "dcccxliv", "dcccxlv", "dcccxlvi", "dcccxlvii", "dcccxlviii", "dcccxlix", "dcccl", "dcccli", "dccclii", "dcccliii", "dcccliv", "dccclv", "dccclvi", "dccclvii", "dccclviii", "dccclix", "dccclx", "dccclxi", "dccclxii", "dccclxiii", "dccclxiv", "dccclxv", "dccclxvi", "dccclxvii", "dccclxviii", "dccclxix", "dccclxx", "dccclxxi", "dccclxxii", "dccclxxiii", "dccclxxiv", "dccclxxv", "dccclxxvi", "dccclxxvii", "dccclxxviii", "dccclxxix", "dccclxxx", "dccclxxxi", "dccclxxxii", "dccclxxxiii", "dccclxxxiv", "dccclxxxv", "dccclxxxvi", "dccclxxxvii", "dccclxxxviii", "dccclxxxix", "dcccxc", "dcccxci", "dcccxcii", "dcccxciii", "dcccxciv", "dcccxcv", "dcccxcvi", "dcccxcvii", "dcccxcviii", "dcccxcix", }; int c[M][N]; int calc(char X[], char Y[]) { int i, j; int m = strlen(X); int n = strlen(Y); for (i = 1; i <= m; i++) c[i][0] = 0; for (j = 0; j <= n; j++) c[0][j] = 0; for (i = 1; i <= m; i++) { for (j = 1; j <= n; j++) { if (X[i-1] == Y[j-1]) { c[i][j] = c[i-1][j-1]+1; } else if (c[i-1][j] >= c[i][j-1]) { c[i][j] = c[i-1][j]; } else { c[i][j] = c[i][j-1]; } } } return c[m][n]; } int main() { char line[10000+5]; char mine[10000+5]; while (fgets(line,10002,stdin)) { char *s = line, *t = mine, d; int i, m = 0, found = 0; while ((d = *s++) != 0) { if (strchr("ivxlcdm",d)) { if (d == 'm') { m+=1000; t = mine; } else { *t++ = d; } } } *t = 0; for (i = 899, found = 0; i > 0; i--) { /*printf("testing %s %d\n",num[i],i);*/ if (calc(num[i],mine) == strlen(num[i])) { found = 1; break; } } if (found) m+= i; printf("%d\n",m); } return 0; }