#include int main() { char s[10001]; int i; while (scanf(" %[^\n]",s) == 1) { int MaxM,MaxD,MaxC,MaxCC,MaxCCC,MaxL,MaxX,MaxXX,MaxXXX,MaxV,MaxI,MaxII,MaxIII; MaxM=MaxD=MaxC=MaxCC=MaxCCC=MaxL=MaxX=MaxXX=MaxXXX=MaxV=MaxI=MaxII=MaxIII=0; int i; int Ev; for (i=0;s[i]!=0;i++) switch (s[i]) { case 'm': MaxM = MaxM + 1000; break; case 'd': MaxD = MaxM + 500; break; case 'c': MaxCCC = MaxCC + 100; MaxCC = MaxC + 100; MaxC = ((MaxM > MaxD) ? MaxM : MaxD) + 100; break; case 'l': Ev = MaxM; if (MaxD > Ev) Ev = MaxD; if (MaxC > Ev) Ev = MaxC; if (MaxCC > Ev) Ev = MaxCC; if (MaxCCC > Ev) Ev = MaxCCC; MaxL = Ev + 50; break; case 'x': MaxXXX = MaxXX+10; MaxXX = MaxX + 10; Ev = MaxM; if (MaxD > Ev) Ev = MaxD; if (MaxC > Ev) Ev = MaxC; if (MaxCC > Ev) Ev = MaxCC; if (MaxCCC > Ev) Ev = MaxCCC; if (MaxL > Ev) Ev = MaxL; MaxX = Ev+10; break; case 'v': Ev = MaxM; if (MaxD > Ev) Ev = MaxD; if (MaxC > Ev) Ev = MaxC; if (MaxCC > Ev) Ev = MaxCC; if (MaxCCC > Ev) Ev = MaxCCC; if (MaxL > Ev) Ev = MaxL; if (MaxX > Ev) Ev = MaxX; if (MaxXX > Ev) Ev = MaxXX; if (MaxXXX > Ev) Ev = MaxXXX; MaxV = Ev + 5; break; case 'i': MaxIII = MaxII + 1; MaxII = MaxI + 1; Ev = MaxM; if (MaxD > Ev) Ev = MaxD; if (MaxC > Ev) Ev = MaxC; if (MaxCC > Ev) Ev = MaxCC; if (MaxCCC > Ev) Ev = MaxCCC; if (MaxL > Ev) Ev = MaxL; if (MaxX > Ev) Ev = MaxX; if (MaxXX > Ev) Ev = MaxXX; if (MaxXXX > Ev) Ev = MaxXXX; if (MaxV > Ev) Ev = MaxV; MaxI = Ev + 1; }; Ev = MaxM; if (MaxD > Ev) Ev = MaxD; if (MaxC > Ev) Ev = MaxC; if (MaxCC > Ev) Ev = MaxCC; if (MaxCCC > Ev) Ev = MaxCCC; if (MaxL > Ev) Ev = MaxL; if (MaxX > Ev) Ev = MaxX; if (MaxXX > Ev) Ev = MaxXX; if (MaxXXX > Ev) Ev = MaxXXX; if (MaxV > Ev) Ev = MaxV; if (MaxI > Ev) Ev = MaxI; if (MaxII > Ev) Ev = MaxII; if (MaxIII>Ev) Ev = MaxIII; printf("%d\n",Ev); }; /* printf("%d%s",i,s);*/ return 0; };