#include int readln( char *znaky){ char n; int i = 0; while('\n' != (n = getchar())){ if( n == EOF ){ znaky[i] = 0; return(0); } znaky[i++] = n; } znaky[i] = 0; return(1); } int main(){ char znaky[10001]; int cislo[10010]; int i, j, k; int nrad=1; int n=0; int mc=0; while( readln(&znaky) ){ k = 0; n=0; for(i=0; znaky[i] != '\0' ; i++){ switch( znaky[i] ){ case 'i': cislo[k++] = 1; break; case 'v': cislo[k++] = 5; break; case 'x': cislo[k++] = 10; break; case 'l': cislo[k++] = 50; break; case 'c': cislo[k++] = 100; break; case 'd': cislo[k++] = 500; break; case 'm': cislo[k++] = 1000; break; } } k--; for(; k > -1 ; k--){ /* printf("%d\n",cislo[k]);*/ if (cislo[k]==1) { if (n<3) n++; } else if (cislo[k]==5) { if (n<4) n+=5; if (k>0) { if (cislo[k-1]==1) { n--; k--; } } } else if (cislo[k]==10) { if (n<30) n+=10; if (k>0) { if (cislo[k-1]==1) { n--; k--; } } } else if (cislo[k]==50) { if (n<40) n+=50; if (k>0) { if ((cislo[k-1]==10) && (n<59)) { n-=10; k--; } } } else if (cislo[k]==100) { if (n<300) n+=100; if (k>0) { if ((cislo[k-1]==10) && (n<109)) { n-=10; k--; } } } else if (cislo[k]==500) { if (n<400) n+=500; if (k>0) { if ((cislo[k-1]==100) && (n<590)) { n-=100; k--; } } } else if (cislo[k]==1000) { n+=1000; if (k>0) { if ((cislo[k-1]==100) && (n<1400)) { n-=100; k--; } } } } printf("%d\n",n); } return 0; }