//best
// USE THIS BUT BE EXTRMELY CAREFUL TO KEEP checking
//XCX IVC CCM (these are supppose to error) - this is working fine.....
//They are critical for coding.
//Currently up to line 914
// issue currently with order of notations CM XI is valid XI CM (not valid)
//but software showing both as ok - NEEDS TO BE FIXED WITH PRIORITY
//ISSUE IS ONLY WITH 2 NOTATIONS
//logic of programme alsmost complete:
// need to add total for all subtractive notations...
// then apply other rules for invalid numbers
// then the untotal will be all the other characters which have not been processed
//best
// USE THIS BUT BE EXTRMELY CAREFUL TO KEEP checking
//XCX IVC CCM (these are supppose to error)
// It also does not get to the above conditions if numeral is longer such as MIVC.. now fixed
//They are critical for coding.
//NEED TO RE-CHECK LOGIC OF HOW twoSubtractiveNotations IS SET TO true - TOTAL IS DOUBLE (WRONG)
//IVCM now fails as expected
// added code to support both directions looking in rule 3
// XCX and IVC still ok... but CCM overruns i counter to 5.. bigger than length#
// trying something like IVC to reach rule 3 ver2.... it reaches max index
// OUTSTANDING.
//CMIV - it is doubling value to 1808 instead of 909...
// this is issue of CM (i index) IV (j index) comparing to CM (j index) and IV (i index)
//Everything else is fixedg

import java.util.Scanner;
import java.util.Arrays;
/*
Online Java - IDE, Code Editor, Compiler
valu`va
Online Java is a quick and easy tool that helps you to build, compile, test your programs online.
*/
// need to address finding match of 4 consecutive numerals
// need to address errors on word document
// can not handle VII or VIII
//switching technique

public class Main
{
    public static void main(String[] args) {
    System.out.println("Welcome to Online IDE!! Happy Coding :)");
    char[] acceptedNumerals = new char[]{'M','D','C','L','X', 'V','I'};
    //These are all accepted roman numerals
    int number; //This is set once end user specifies number numerals in their number to be inputted
    boolean noMatch=true; // this flag is used to check if the numeral entered is a valid one
    int j; //used to increment the character array containing user input of numeral
    int count=0; // this keeps track number times end user has entered a character. It can be decremented if it fails validation.
    Scanner reader=null;
    // This is used to ascertain how many digits end user wants
    reader = new Scanner(System.in); // Reading from System.in
    System.out.println("Enter number numerals in the number to be converted to decimal:");
    
    //declare the array here with the numbers....
     String [] allNumerals = new String[3999];
    //allNumerals[0]=" I";
    
    
allNumerals[0]="I";
allNumerals[1]="II";
allNumerals[2]="III";
allNumerals[3]="IV";
allNumerals[4]="V";
allNumerals[5]="VI";
allNumerals[6]="VII";
allNumerals[7]="VIII";
allNumerals[8]="IX";
allNumerals[9]="X";
allNumerals[10]="XI";
allNumerals[11]="XII";
allNumerals[12]="XIII";
allNumerals[13]="XIV";
allNumerals[14]="XV";
allNumerals[15]="XVI";
allNumerals[16]="XVII";
allNumerals[17]="XVIII";
allNumerals[18]="XIX";
allNumerals[19]="XX";
allNumerals[20]="XXI";
allNumerals[21]="XXII";
allNumerals[22]="XXIII";
allNumerals[23]="XXIV";
allNumerals[24]="XXV";
allNumerals[25]="XXVI";
allNumerals[26]="XXVII";
allNumerals[27]="XXVIII";
allNumerals[28]="XXIX";
allNumerals[29]="XXX";
allNumerals[30]="XXXI";
allNumerals[31]="XXXII";
allNumerals[32]="XXXIII";
allNumerals[33]="XXXIV";
allNumerals[34]="XXXV";
allNumerals[35]="XXXVI";
allNumerals[36]="XXXVII";
allNumerals[37]="XXXVIII";
allNumerals[38]="XXXIX";
allNumerals[39]="XL";
allNumerals[40]="XLI";
allNumerals[41]="XLII";
allNumerals[42]="XLIII";
allNumerals[43]="XLIV";
allNumerals[44]="XLV";
allNumerals[45]="XLVI";
allNumerals[46]="XLVII";
allNumerals[47]="XLVIII";
allNumerals[48]="XLIX";
allNumerals[49]="L";
allNumerals[50]="LI";
allNumerals[51]="LII";
allNumerals[52]="LIII";
allNumerals[53]="LIV";
allNumerals[54]="LV";
allNumerals[55]="LVI";
allNumerals[56]="LVII";
allNumerals[57]="LVIII";
allNumerals[58]="LIX";
allNumerals[59]="LX";
allNumerals[60]="LXI";
allNumerals[61]="LXII";
allNumerals[62]="LXIII";
allNumerals[63]="LXIV";
allNumerals[64]="LXV";
allNumerals[65]="LXVI";
allNumerals[66]="LXVII";
allNumerals[67]="LXVIII";
allNumerals[68]="LXIX";
allNumerals[69]="LXX";
allNumerals[70]="LXXI";
allNumerals[71]="LXXII";
allNumerals[72]="LXXIII";
allNumerals[73]="LXXIV";
allNumerals[74]="LXXV";
allNumerals[75]="LXXVI";
allNumerals[76]="LXXVII";
allNumerals[77]="LXXVIII";
allNumerals[78]="LXXIX";
allNumerals[79]="LXXX";
allNumerals[80]="LXXXI";
allNumerals[81]="LXXXII";
allNumerals[82]="LXXXIII";
allNumerals[83]="LXXXIV";
allNumerals[84]="LXXXV";
allNumerals[85]="LXXXVI";
allNumerals[86]="LXXXVII";
allNumerals[87]="LXXXVIII";
allNumerals[88]="LXXXIX";
allNumerals[89]="XC";
allNumerals[90]="XCI";
allNumerals[91]="XCII";
allNumerals[92]="XCIII";
allNumerals[93]="XCIV";
allNumerals[94]="XCV";
allNumerals[95]="XCVI";
allNumerals[96]="XCVII";
allNumerals[97]="XCVIII";
allNumerals[98]="XCIX";
allNumerals[99]="C";
allNumerals[100]="CI";
allNumerals[101]="CII";
allNumerals[102]="CIII";
allNumerals[103]="CIV";
allNumerals[104]="CV";
allNumerals[105]="CVI";
allNumerals[106]="CVII";
allNumerals[107]="CVIII";
allNumerals[108]="CIX";
allNumerals[109]="CX";
allNumerals[110]="CXI";
allNumerals[111]="CXII";
allNumerals[112]="CXIII";
allNumerals[113]="CXIV";
allNumerals[114]="CXV";
allNumerals[115]="CXVI";
allNumerals[116]="CXVII";
allNumerals[117]="CXVIII";
allNumerals[118]="CXIX";
allNumerals[119]="CXX";
allNumerals[120]="CXXI";
allNumerals[121]="CXXII";
allNumerals[122]="CXXIII";
allNumerals[123]="CXXIV";
allNumerals[124]="CXXV";
allNumerals[125]="CXXVI";
allNumerals[126]="CXXVII";
allNumerals[127]="CXXVIII";
allNumerals[128]="CXXIX";
allNumerals[129]="CXXX";
allNumerals[130]="CXXXI";
allNumerals[131]="CXXXII";
allNumerals[132]="CXXXIII";
allNumerals[133]="CXXXIV";
allNumerals[134]="CXXXV";
allNumerals[135]="CXXXVI";
allNumerals[136]="CXXXVII";
allNumerals[137]="CXXXVIII";
allNumerals[138]="CXXXIX";
allNumerals[139]="CXL";
allNumerals[140]="CXLI";
allNumerals[141]="CXLII";
allNumerals[142]="CXLIII";
allNumerals[143]="CXLIV";
allNumerals[144]="CXLV";
allNumerals[145]="CXLVI";
allNumerals[146]="CXLVII";
allNumerals[147]="CXLVIII";
allNumerals[148]="CXLIX";
allNumerals[149]="CL";
allNumerals[150]="CLI";
allNumerals[151]="CLII";
allNumerals[152]="CLIII";
allNumerals[153]="CLIV";
allNumerals[154]="CLV";
allNumerals[155]="CLVI";
allNumerals[156]="CLVII";
allNumerals[157]="CLVIII";
allNumerals[158]="CLIX";
allNumerals[159]="CLX";
allNumerals[160]="CLXI";
allNumerals[161]="CLXII";
allNumerals[162]="CLXIII";
allNumerals[163]="CLXIV";
allNumerals[164]="CLXV";
allNumerals[165]="CLXVI";
allNumerals[166]="CLXVII";
allNumerals[167]="CLXVIII";
allNumerals[168]="CLXIX";
allNumerals[169]="CLXX";
allNumerals[170]="CLXXI";
allNumerals[171]="CLXXII";
allNumerals[172]="CLXXIII";
allNumerals[173]="CLXXIV";
allNumerals[174]="CLXXV";
allNumerals[175]="CLXXVI";
allNumerals[176]="CLXXVII";
allNumerals[177]="CLXXVIII";
allNumerals[178]="CLXXIX";
allNumerals[179]="CLXXX";
allNumerals[180]="CLXXXI";
allNumerals[181]="CLXXXII";
allNumerals[182]="CLXXXIII";
allNumerals[183]="CLXXXIV";
allNumerals[184]="CLXXXV";
allNumerals[185]="CLXXXVI";
allNumerals[186]="CLXXXVII";
allNumerals[187]="CLXXXVIII";
allNumerals[188]="CLXXXIX";
allNumerals[189]="CXC";
allNumerals[190]="CXCI";
allNumerals[191]="CXCII";
allNumerals[192]="CXCIII";
allNumerals[193]="CXCIV";
allNumerals[194]="CXCV";
allNumerals[195]="CXCVI";
allNumerals[196]="CXCVII";
allNumerals[197]="CXCVIII";
allNumerals[198]="CXCIX";
allNumerals[199]="CC";
allNumerals[200]="CCI";
allNumerals[201]="CCII";
allNumerals[202]="CCIII";
allNumerals[203]="CCIV";
allNumerals[204]="CCV";
allNumerals[205]="CCVI";
allNumerals[206]="CCVII";
allNumerals[207]="CCVIII";
allNumerals[208]="CCIX";
allNumerals[209]="CCX";
allNumerals[210]="CCXI";
allNumerals[211]="CCXII";
allNumerals[212]="CCXIII";
allNumerals[213]="CCXIV";
allNumerals[214]="CCXV";
allNumerals[215]="CCXVI";
allNumerals[216]="CCXVII";
allNumerals[217]="CCXVIII";
allNumerals[218]="CCXIX";
allNumerals[219]="CCXX";
allNumerals[220]="CCXXI";
allNumerals[221]="CCXXII";
allNumerals[222]="CCXXIII";
allNumerals[223]="CCXXIV";
allNumerals[224]="CCXXV";
allNumerals[225]="CCXXVI";
allNumerals[226]="CCXXVII";
allNumerals[227]="CCXXVIII";
allNumerals[228]="CCXXIX";
allNumerals[229]="CCXXX";
allNumerals[230]="CCXXXI";
allNumerals[231]="CCXXXII";
allNumerals[232]="CCXXXIII";
allNumerals[233]="CCXXXIV";
allNumerals[234]="CCXXXV";
allNumerals[235]="CCXXXVI";
allNumerals[236]="CCXXXVII";
allNumerals[237]="CCXXXVIII";
allNumerals[238]="CCXXXIX";
allNumerals[239]="CCXL";
allNumerals[240]="CCXLI";
allNumerals[241]="CCXLII";
allNumerals[242]="CCXLIII";
allNumerals[243]="CCXLIV";
allNumerals[244]="CCXLV";
allNumerals[245]="CCXLVI";
allNumerals[246]="CCXLVII";
allNumerals[247]="CCXLVIII";
allNumerals[248]="CCXLIX";
allNumerals[249]="CCL";
allNumerals[250]="CCLI";
allNumerals[251]="CCLII";
allNumerals[252]="CCLIII";
allNumerals[253]="CCLIV";
allNumerals[254]="CCLV";
allNumerals[255]="CCLVI";
allNumerals[256]="CCLVII";
allNumerals[257]="CCLVIII";
allNumerals[258]="CCLIX";
allNumerals[259]="CCLX";
allNumerals[260]="CCLXI";
allNumerals[261]="CCLXII";
allNumerals[262]="CCLXIII";
allNumerals[263]="CCLXIV";
allNumerals[264]="CCLXV";
allNumerals[265]="CCLXVI";
allNumerals[266]="CCLXVII";
allNumerals[267]="CCLXVIII";
allNumerals[268]="CCLXIX";
allNumerals[269]="CCLXX";
allNumerals[270]="CCLXXI";
allNumerals[271]="CCLXXII";
allNumerals[272]="CCLXXIII";
allNumerals[273]="CCLXXIV";
allNumerals[274]="CCLXXV";
allNumerals[275]="CCLXXVI";
allNumerals[276]="CCLXXVII";
allNumerals[277]="CCLXXVIII";
allNumerals[278]="CCLXXIX";
allNumerals[279]="CCLXXX";
allNumerals[280]="CCLXXXI";
allNumerals[281]="CCLXXXII";
allNumerals[282]="CCLXXXIII";
allNumerals[283]="CCLXXXIV";
allNumerals[284]="CCLXXXV";
allNumerals[285]="CCLXXXVI";
allNumerals[286]="CCLXXXVII";
allNumerals[287]="CCLXXXVIII";
allNumerals[288]="CCLXXXIX";
allNumerals[289]="CCXC";
allNumerals[290]="CCXCI";
allNumerals[291]="CCXCII";
allNumerals[292]="CCXCIII";
allNumerals[293]="CCXCIV";
allNumerals[294]="CCXCV";
allNumerals[295]="CCXCVI";
allNumerals[296]="CCXCVII";
allNumerals[297]="CCXCVIII";
allNumerals[298]="CCXCIX";
allNumerals[299]="CCC";
allNumerals[300]="CCCI";
allNumerals[301]="CCCII";
allNumerals[302]="CCCIII";
allNumerals[303]="CCCIV";
allNumerals[304]="CCCV";
allNumerals[305]="CCCVI";
allNumerals[306]="CCCVII";
allNumerals[307]="CCCVIII";
allNumerals[308]="CCCIX";
allNumerals[309]="CCCX";
allNumerals[310]="CCCXI";
allNumerals[311]="CCCXII";
allNumerals[312]="CCCXIII";
allNumerals[313]="CCCXIV";
allNumerals[314]="CCCXV";
allNumerals[315]="CCCXVI";
allNumerals[316]="CCCXVII";
allNumerals[317]="CCCXVIII";
allNumerals[318]="CCCXIX";
allNumerals[319]="CCCXX";
allNumerals[320]="CCCXXI";
allNumerals[321]="CCCXXII";
allNumerals[322]="CCCXXIII";
allNumerals[323]="CCCXXIV";
allNumerals[324]="CCCXXV";
allNumerals[325]="CCCXXVI";
allNumerals[326]="CCCXXVII";
allNumerals[327]="CCCXXVIII";
allNumerals[328]="CCCXXIX";
allNumerals[329]="CCCXXX";
allNumerals[330]="CCCXXXI";
allNumerals[331]="CCCXXXII";
allNumerals[332]="CCCXXXIII";
allNumerals[333]="CCCXXXIV";
allNumerals[334]="CCCXXXV";
allNumerals[335]="CCCXXXVI";
allNumerals[336]="CCCXXXVII";
allNumerals[337]="CCCXXXVIII";
allNumerals[338]="CCCXXXIX";
allNumerals[339]="CCCXL";
allNumerals[340]="CCCXLI";
allNumerals[341]="CCCXLII";
allNumerals[342]="CCCXLIII";
allNumerals[343]="CCCXLIV";
allNumerals[344]="CCCXLV";
allNumerals[345]="CCCXLVI";
allNumerals[346]="CCCXLVII";
allNumerals[347]="CCCXLVIII";
allNumerals[348]="CCCXLIX";
allNumerals[349]="CCCL";
allNumerals[350]="CCCLI";
allNumerals[351]="CCCLII";
allNumerals[352]="CCCLIII";
allNumerals[353]="CCCLIV";
allNumerals[354]="CCCLV";
allNumerals[355]="CCCLVI";
allNumerals[356]="CCCLVII";
allNumerals[357]="CCCLVIII";
allNumerals[358]="CCCLIX";
allNumerals[359]="CCCLX";
allNumerals[360]="CCCLXI";
allNumerals[361]="CCCLXII";
allNumerals[362]="CCCLXIII";
allNumerals[363]="CCCLXIV";
allNumerals[364]="CCCLXV";
allNumerals[365]="CCCLXVI";
allNumerals[366]="CCCLXVII";
allNumerals[367]="CCCLXVIII";
allNumerals[368]="CCCLXIX";
allNumerals[369]="CCCLXX";
allNumerals[370]="CCCLXXI";
allNumerals[371]="CCCLXXII";
allNumerals[372]="CCCLXXIII";
allNumerals[373]="CCCLXXIV";
allNumerals[374]="CCCLXXV";
allNumerals[375]="CCCLXXVI";
allNumerals[376]="CCCLXXVII";
allNumerals[377]="CCCLXXVIII";
allNumerals[378]="CCCLXXIX";
allNumerals[379]="CCCLXXX";
allNumerals[380]="CCCLXXXI";
allNumerals[381]="CCCLXXXII";
allNumerals[382]="CCCLXXXIII";
allNumerals[383]="CCCLXXXIV";
allNumerals[384]="CCCLXXXV";
allNumerals[385]="CCCLXXXVI";
allNumerals[386]="CCCLXXXVII";
allNumerals[387]="CCCLXXXVIII";
allNumerals[388]="CCCLXXXIX";
allNumerals[389]="CCCXC";
allNumerals[390]="CCCXCI";
allNumerals[391]="CCCXCII";
allNumerals[392]="CCCXCIII";
allNumerals[393]="CCCXCIV";
allNumerals[394]="CCCXCV";
allNumerals[395]="CCCXCVI";
allNumerals[396]="CCCXCVII";
allNumerals[397]="CCCXCVIII";
allNumerals[398]="CCCXCIX";
allNumerals[399]="CD";
allNumerals[400]="CDI";
allNumerals[401]="CDII";
allNumerals[402]="CDIII";
allNumerals[403]="CDIV";
allNumerals[404]="CDV";
allNumerals[405]="CDVI";
allNumerals[406]="CDVII";
allNumerals[407]="CDVIII";
allNumerals[408]="CDIX";
allNumerals[409]="CDX";
allNumerals[410]="CDXI";
allNumerals[411]="CDXII";
allNumerals[412]="CDXIII";
allNumerals[413]="CDXIV";
allNumerals[414]="CDXV";
allNumerals[415]="CDXVI";
allNumerals[416]="CDXVII";
allNumerals[417]="CDXVIII";
allNumerals[418]="CDXIX";
allNumerals[419]="CDXX";
allNumerals[420]="CDXXI";
allNumerals[421]="CDXXII";
allNumerals[422]="CDXXIII";
allNumerals[423]="CDXXIV";
allNumerals[424]="CDXXV";
allNumerals[425]="CDXXVI";
allNumerals[426]="CDXXVII";
allNumerals[427]="CDXXVIII";
allNumerals[428]="CDXXIX";
allNumerals[429]="CDXXX";
allNumerals[430]="CDXXXI";
allNumerals[431]="CDXXXII";
allNumerals[432]="CDXXXIII";
allNumerals[433]="CDXXXIV";
allNumerals[434]="CDXXXV";
allNumerals[435]="CDXXXVI";
allNumerals[436]="CDXXXVII";
allNumerals[437]="CDXXXVIII";
allNumerals[438]="CDXXXIX";
allNumerals[439]="CDXL";
allNumerals[440]="CDXLI";
allNumerals[441]="CDXLII";
allNumerals[442]="CDXLIII";
allNumerals[443]="CDXLIV";
allNumerals[444]="CDXLV";
allNumerals[445]="CDXLVI";
allNumerals[446]="CDXLVII";
allNumerals[447]="CDXLVIII";
allNumerals[448]="CDXLIX";
allNumerals[449]="CDL";
allNumerals[450]="CDLI";
allNumerals[451]="CDLII";
allNumerals[452]="CDLIII";
allNumerals[453]="CDLIV";
allNumerals[454]="CDLV";
allNumerals[455]="CDLVI";
allNumerals[456]="CDLVII";
allNumerals[457]="CDLVIII";
allNumerals[458]="CDLIX";
allNumerals[459]="CDLX";
allNumerals[460]="CDLXI";
allNumerals[461]="CDLXII";
allNumerals[462]="CDLXIII";
allNumerals[463]="CDLXIV";
allNumerals[464]="CDLXV";
allNumerals[465]="CDLXVI";
allNumerals[466]="CDLXVII";
allNumerals[467]="CDLXVIII";
allNumerals[468]="CDLXIX";
allNumerals[469]="CDLXX";
allNumerals[470]="CDLXXI";
allNumerals[471]="CDLXXII";
allNumerals[472]="CDLXXIII";
allNumerals[473]="CDLXXIV";
allNumerals[474]="CDLXXV";
allNumerals[475]="CDLXXVI";
allNumerals[476]="CDLXXVII";
allNumerals[477]="CDLXXVIII";
allNumerals[478]="CDLXXIX";
allNumerals[479]="CDLXXX";
allNumerals[480]="CDLXXXI";
allNumerals[481]="CDLXXXII";
allNumerals[482]="CDLXXXIII";
allNumerals[483]="CDLXXXIV";
allNumerals[484]="CDLXXXV";
allNumerals[485]="CDLXXXVI";
allNumerals[486]="CDLXXXVII";
allNumerals[487]="CDLXXXVIII";
allNumerals[488]="CDLXXXIX";
allNumerals[489]="CDXC";
allNumerals[490]="CDXCI";
allNumerals[491]="CDXCII";
allNumerals[492]="CDXCIII";
allNumerals[493]="CDXCIV";
allNumerals[494]="CDXCV";
allNumerals[495]="CDXCVI";
allNumerals[496]="CDXCVII";
allNumerals[497]="CDXCVIII";
allNumerals[498]="CDXCIX";
allNumerals[499]="D";
allNumerals[500]="DI";
allNumerals[501]="DII";
allNumerals[502]="DIII";
allNumerals[503]="DIV";
allNumerals[504]="DV";
allNumerals[505]="DVI";
allNumerals[506]="DVII";
allNumerals[507]="DVIII";
allNumerals[508]="DIX";
allNumerals[509]="DX";
allNumerals[510]="DXI";
allNumerals[511]="DXII";
allNumerals[512]="DXIII";
allNumerals[513]="DXIV";
allNumerals[514]="DXV";
allNumerals[515]="DXVI";
allNumerals[516]="DXVII";
allNumerals[517]="DXVIII";
allNumerals[518]="DXIX";
allNumerals[519]="DXX";
allNumerals[520]="DXXI";
allNumerals[521]="DXXII";
allNumerals[522]="DXXIII";
allNumerals[523]="DXXIV";
allNumerals[524]="DXXV";
allNumerals[525]="DXXVI";
allNumerals[526]="DXXVII";
allNumerals[527]="DXXVIII";
allNumerals[528]="DXXIX";
allNumerals[529]="DXXX";
allNumerals[530]="DXXXI";
allNumerals[531]="DXXXII";
allNumerals[532]="DXXXIII";
allNumerals[533]="DXXXIV";
allNumerals[534]="DXXXV";
allNumerals[535]="DXXXVI";
allNumerals[536]="DXXXVII";
allNumerals[537]="DXXXVIII";
allNumerals[538]="DXXXIX";
allNumerals[539]="DXL";
allNumerals[540]="DXLI";
allNumerals[541]="DXLII";
allNumerals[542]="DXLIII";
allNumerals[543]="DXLIV";
allNumerals[544]="DXLV";
allNumerals[545]="DXLVI";
allNumerals[546]="DXLVII";
allNumerals[547]="DXLVIII";
allNumerals[548]="DXLIX";
allNumerals[549]="DL";
allNumerals[550]="DLI";
allNumerals[551]="DLII";
allNumerals[552]="DLIII";
allNumerals[553]="DLIV";
allNumerals[554]="DLV";
allNumerals[555]="DLVI";
allNumerals[556]="DLVII";
allNumerals[557]="DLVIII";
allNumerals[558]="DLIX";
allNumerals[559]="DLX";
allNumerals[560]="DLXI";
allNumerals[561]="DLXII";
allNumerals[562]="DLXIII";
allNumerals[563]="DLXIV";
allNumerals[564]="DLXV";
allNumerals[565]="DLXVI";
allNumerals[566]="DLXVII";
allNumerals[567]="DLXVIII";
allNumerals[568]="DLXIX";
allNumerals[569]="DLXX";
allNumerals[570]="DLXXI";
allNumerals[571]="DLXXII";
allNumerals[572]="DLXXIII";
allNumerals[573]="DLXXIV";
allNumerals[574]="DLXXV";
allNumerals[575]="DLXXVI";
allNumerals[576]="DLXXVII";
allNumerals[577]="DLXXVIII";
allNumerals[578]="DLXXIX";
allNumerals[579]="DLXXX";
allNumerals[580]="DLXXXI";
allNumerals[581]="DLXXXII";
allNumerals[582]="DLXXXIII";
allNumerals[583]="DLXXXIV";
allNumerals[584]="DLXXXV";
allNumerals[585]="DLXXXVI";
allNumerals[586]="DLXXXVII";
allNumerals[587]="DLXXXVIII";
allNumerals[588]="DLXXXIX";
allNumerals[589]="DXC";
allNumerals[590]="DXCI";
allNumerals[591]="DXCII";
allNumerals[592]="DXCIII";
allNumerals[593]="DXCIV";
allNumerals[594]="DXCV";
allNumerals[595]="DXCVI";
allNumerals[596]="DXCVII";
allNumerals[597]="DXCVIII";
allNumerals[598]="DXCIX";
allNumerals[599]="DC";
allNumerals[600]="DCI";
allNumerals[601]="DCII";
allNumerals[602]="DCIII";
allNumerals[603]="DCIV";
allNumerals[604]="DCV";
allNumerals[605]="DCVI";
allNumerals[606]="DCVII";
allNumerals[607]="DCVIII";
allNumerals[608]="DCIX";
allNumerals[609]="DCX";
allNumerals[610]="DCXI";
allNumerals[611]="DCXII";
allNumerals[612]="DCXIII";
allNumerals[613]="DCXIV";
allNumerals[614]="DCXV";
allNumerals[615]="DCXVI";
allNumerals[616]="DCXVII";
allNumerals[617]="DCXVIII";
allNumerals[618]="DCXIX";
allNumerals[619]="DCXX";
allNumerals[620]="DCXXI";
allNumerals[621]="DCXXII";
allNumerals[622]="DCXXIII";
allNumerals[623]="DCXXIV";
allNumerals[624]="DCXXV";
allNumerals[625]="DCXXVI";
allNumerals[626]="DCXXVII";
allNumerals[627]="DCXXVIII";
allNumerals[628]="DCXXIX";
allNumerals[629]="DCXXX";
allNumerals[630]="DCXXXI";
allNumerals[631]="DCXXXII";
allNumerals[632]="DCXXXIII";
allNumerals[633]="DCXXXIV";
allNumerals[634]="DCXXXV";
allNumerals[635]="DCXXXVI";
allNumerals[636]="DCXXXVII";
allNumerals[637]="DCXXXVIII";
allNumerals[638]="DCXXXIX";
allNumerals[639]="DCXL";
allNumerals[640]="DCXLI";
allNumerals[641]="DCXLII";
allNumerals[642]="DCXLIII";
allNumerals[643]="DCXLIV";
allNumerals[644]="DCXLV";
allNumerals[645]="DCXLVI";
allNumerals[646]="DCXLVII";
allNumerals[647]="DCXLVIII";
allNumerals[648]="DCXLIX";
allNumerals[649]="DCL";
allNumerals[650]="DCLI";
allNumerals[651]="DCLII";
allNumerals[652]="DCLIII";
allNumerals[653]="DCLIV";
allNumerals[654]="DCLV";
allNumerals[655]="DCLVI";
allNumerals[656]="DCLVII";
allNumerals[657]="DCLVIII";
allNumerals[658]="DCLIX";
allNumerals[659]="DCLX";
allNumerals[660]="DCLXI";
allNumerals[661]="DCLXII";
allNumerals[662]="DCLXIII";
allNumerals[663]="DCLXIV";
allNumerals[664]="DCLXV";
allNumerals[665]="DCLXVI";
allNumerals[666]="DCLXVII";
allNumerals[667]="DCLXVIII";
allNumerals[668]="DCLXIX";
allNumerals[669]="DCLXX";
allNumerals[670]="DCLXXI";
allNumerals[671]="DCLXXII";
allNumerals[672]="DCLXXIII";
allNumerals[673]="DCLXXIV";
allNumerals[674]="DCLXXV";
allNumerals[675]="DCLXXVI";
allNumerals[676]="DCLXXVII";
allNumerals[677]="DCLXXVIII";
allNumerals[678]="DCLXXIX";
allNumerals[679]="DCLXXX";
allNumerals[680]="DCLXXXI";
allNumerals[681]="DCLXXXII";
allNumerals[682]="DCLXXXIII";
allNumerals[683]="DCLXXXIV";
allNumerals[684]="DCLXXXV";
allNumerals[685]="DCLXXXVI";
allNumerals[686]="DCLXXXVII";
allNumerals[687]="DCLXXXVIII";
allNumerals[688]="DCLXXXIX";
allNumerals[689]="DCXC";
allNumerals[690]="DCXCI";
allNumerals[691]="DCXCII";
allNumerals[692]="DCXCIII";
allNumerals[693]="DCXCIV";
allNumerals[694]="DCXCV";
allNumerals[695]="DCXCVI";
allNumerals[696]="DCXCVII";
allNumerals[697]="DCXCVIII";
allNumerals[698]="DCXCIX";
allNumerals[699]="DCC";
allNumerals[700]="DCCI";
allNumerals[701]="DCCII";
allNumerals[702]="DCCIII";
allNumerals[703]="DCCIV";
allNumerals[704]="DCCV";
allNumerals[705]="DCCVI";
allNumerals[706]="DCCVII";
allNumerals[707]="DCCVIII";
allNumerals[708]="DCCIX";
allNumerals[709]="DCCX";
allNumerals[710]="DCCXI";
allNumerals[711]="DCCXII";
allNumerals[712]="DCCXIII";
allNumerals[713]="DCCXIV";
allNumerals[714]="DCCXV";
allNumerals[715]="DCCXVI";
allNumerals[716]="DCCXVII";
allNumerals[717]="DCCXVIII";
allNumerals[718]="DCCXIX";
allNumerals[719]="DCCXX";
allNumerals[720]="DCCXXI";
allNumerals[721]="DCCXXII";
allNumerals[722]="DCCXXIII";
allNumerals[723]="DCCXXIV";
allNumerals[724]="DCCXXV";
allNumerals[725]="DCCXXVI";
allNumerals[726]="DCCXXVII";
allNumerals[727]="DCCXXVIII";
allNumerals[728]="DCCXXIX";
allNumerals[729]="DCCXXX";
allNumerals[730]="DCCXXXI";
allNumerals[731]="DCCXXXII";
allNumerals[732]="DCCXXXIII";
allNumerals[733]="DCCXXXIV";
allNumerals[734]="DCCXXXV";
allNumerals[735]="DCCXXXVI";
allNumerals[736]="DCCXXXVII";
allNumerals[737]="DCCXXXVIII";
allNumerals[738]="DCCXXXIX";
allNumerals[739]="DCCXL";
allNumerals[740]="DCCXLI";
allNumerals[741]="DCCXLII";
allNumerals[742]="DCCXLIII";
allNumerals[743]="DCCXLIV";
allNumerals[744]="DCCXLV";
allNumerals[745]="DCCXLVI";
allNumerals[746]="DCCXLVII";
allNumerals[747]="DCCXLVIII";
allNumerals[748]="DCCXLIX";
allNumerals[749]="DCCL";
allNumerals[750]="DCCLI";
allNumerals[751]="DCCLII";
allNumerals[752]="DCCLIII";
allNumerals[753]="DCCLIV";
allNumerals[754]="DCCLV";
allNumerals[755]="DCCLVI";
allNumerals[756]="DCCLVII";
allNumerals[757]="DCCLVIII";
allNumerals[758]="DCCLIX";
allNumerals[759]="DCCLX";
allNumerals[760]="DCCLXI";
allNumerals[761]="DCCLXII";
allNumerals[762]="DCCLXIII";
allNumerals[763]="DCCLXIV";
allNumerals[764]="DCCLXV";
allNumerals[765]="DCCLXVI";
allNumerals[766]="DCCLXVII";
allNumerals[767]="DCCLXVIII";
allNumerals[768]="DCCLXIX";
allNumerals[769]="DCCLXX";
allNumerals[770]="DCCLXXI";
allNumerals[771]="DCCLXXII";
allNumerals[772]="DCCLXXIII";
allNumerals[773]="DCCLXXIV";
allNumerals[774]="DCCLXXV";
allNumerals[775]="DCCLXXVI";
allNumerals[776]="DCCLXXVII";
allNumerals[777]="DCCLXXVIII";
allNumerals[778]="DCCLXXIX";
allNumerals[779]="DCCLXXX";
allNumerals[780]="DCCLXXXI";
allNumerals[781]="DCCLXXXII";
allNumerals[782]="DCCLXXXIII";
allNumerals[783]="DCCLXXXIV";
allNumerals[784]="DCCLXXXV";
allNumerals[785]="DCCLXXXVI";
allNumerals[786]="DCCLXXXVII";
allNumerals[787]="DCCLXXXVIII";
allNumerals[788]="DCCLXXXIX";
allNumerals[789]="DCCXC";
allNumerals[790]="DCCXCI";
allNumerals[791]="DCCXCII";
allNumerals[792]="DCCXCIII";
allNumerals[793]="DCCXCIV";
allNumerals[794]="DCCXCV";
allNumerals[795]="DCCXCVI";
allNumerals[796]="DCCXCVII";
allNumerals[797]="DCCXCVIII";
allNumerals[798]="DCCXCIX";
allNumerals[799]="DCCC";
allNumerals[800]="DCCCI";
allNumerals[801]="DCCCII";
allNumerals[802]="DCCCIII";
allNumerals[803]="DCCCIV";
allNumerals[804]="DCCCV";
allNumerals[805]="DCCCVI";
allNumerals[806]="DCCCVII";
allNumerals[807]="DCCCVIII";
allNumerals[808]="DCCCIX";
allNumerals[809]="DCCCX";
allNumerals[810]="DCCCXI";
allNumerals[811]="DCCCXII";
allNumerals[812]="DCCCXIII";
allNumerals[813]="DCCCXIV";
allNumerals[814]="DCCCXV";
allNumerals[815]="DCCCXVI";
allNumerals[816]="DCCCXVII";
allNumerals[817]="DCCCXVIII";
allNumerals[818]="DCCCXIX";
allNumerals[819]="DCCCXX";
allNumerals[820]="DCCCXXI";
allNumerals[821]="DCCCXXII";
allNumerals[822]="DCCCXXIII";
allNumerals[823]="DCCCXXIV";
allNumerals[824]="DCCCXXV";
allNumerals[825]="DCCCXXVI";
allNumerals[826]="DCCCXXVII";
allNumerals[827]="DCCCXXVIII";
allNumerals[828]="DCCCXXIX";
allNumerals[829]="DCCCXXX";
allNumerals[830]="DCCCXXXI";
allNumerals[831]="DCCCXXXII";
allNumerals[832]="DCCCXXXIII";
allNumerals[833]="DCCCXXXIV";
allNumerals[834]="DCCCXXXV";
allNumerals[835]="DCCCXXXVI";
allNumerals[836]="DCCCXXXVII";
allNumerals[837]="DCCCXXXVIII";
allNumerals[838]="DCCCXXXIX";
allNumerals[839]="DCCCXL";
allNumerals[840]="DCCCXLI";
allNumerals[841]="DCCCXLII";
allNumerals[842]="DCCCXLIII";
allNumerals[843]="DCCCXLIV";
allNumerals[844]="DCCCXLV";
allNumerals[845]="DCCCXLVI";
allNumerals[846]="DCCCXLVII";
allNumerals[847]="DCCCXLVIII";
allNumerals[848]="DCCCXLIX";
allNumerals[849]="DCCCL";
allNumerals[850]="DCCCLI";
allNumerals[851]="DCCCLII";
allNumerals[852]="DCCCLIII";
allNumerals[853]="DCCCLIV";
allNumerals[854]="DCCCLV";
allNumerals[855]="DCCCLVI";
allNumerals[856]="DCCCLVII";
allNumerals[857]="DCCCLVIII";
allNumerals[858]="DCCCLIX";
allNumerals[859]="DCCCLX";
allNumerals[860]="DCCCLXI";
allNumerals[861]="DCCCLXII";
allNumerals[862]="DCCCLXIII";
allNumerals[863]="DCCCLXIV";
allNumerals[864]="DCCCLXV";
allNumerals[865]="DCCCLXVI";
allNumerals[866]="DCCCLXVII";
allNumerals[867]="DCCCLXVIII";
allNumerals[868]="DCCCLXIX";
allNumerals[869]="DCCCLXX";
allNumerals[870]="DCCCLXXI";
allNumerals[871]="DCCCLXXII";
allNumerals[872]="DCCCLXXIII";
allNumerals[873]="DCCCLXXIV";
allNumerals[874]="DCCCLXXV";
allNumerals[875]="DCCCLXXVI";
allNumerals[876]="DCCCLXXVII";
allNumerals[877]="DCCCLXXVIII";
allNumerals[878]="DCCCLXXIX";
allNumerals[879]="DCCCLXXX";
allNumerals[880]="DCCCLXXXI";
allNumerals[881]="DCCCLXXXII";
allNumerals[882]="DCCCLXXXIII";
allNumerals[883]="DCCCLXXXIV";
allNumerals[884]="DCCCLXXXV";
allNumerals[885]="DCCCLXXXVI";
allNumerals[886]="DCCCLXXXVII";
allNumerals[887]="DCCCLXXXVIII";
allNumerals[888]="DCCCLXXXIX";
allNumerals[889]="DCCCXC";
allNumerals[890]="DCCCXCI";
allNumerals[891]="DCCCXCII";
allNumerals[892]="DCCCXCIII";
allNumerals[893]="DCCCXCIV";
allNumerals[894]="DCCCXCV";
allNumerals[895]="DCCCXCVI";
allNumerals[896]="DCCCXCVII";
allNumerals[897]="DCCCXCVIII";
allNumerals[898]="DCCCXCIX";
allNumerals[899]="CM";
allNumerals[900]="CMI";
allNumerals[901]="CMII";
allNumerals[902]="CMIII";
allNumerals[903]="CMIV";
allNumerals[904]="CMV";
allNumerals[905]="CMVI";
allNumerals[906]="CMVII";
allNumerals[907]="CMVIII";
allNumerals[908]="CMIX";
allNumerals[909]="CMX";
allNumerals[910]="CMXI";
allNumerals[911]="CMXII";
allNumerals[912]="CMXIII";
allNumerals[913]="CMXIV";
allNumerals[914]="CMXV";
allNumerals[915]="CMXVI";
allNumerals[916]="CMXVII";
allNumerals[917]="CMXVIII";
allNumerals[918]="CMXIX";
allNumerals[919]="CMXX";
allNumerals[920]="CMXXI";
allNumerals[921]="CMXXII";
allNumerals[922]="CMXXIII";
allNumerals[923]="CMXXIV";
allNumerals[924]="CMXXV";
allNumerals[925]="CMXXVI";
allNumerals[926]="CMXXVII";
allNumerals[927]="CMXXVIII";
allNumerals[928]="CMXXIX";
allNumerals[929]="CMXXX";
allNumerals[930]="CMXXXI";
allNumerals[931]="CMXXXII";
allNumerals[932]="CMXXXIII";
allNumerals[933]="CMXXXIV";
allNumerals[934]="CMXXXV";
allNumerals[935]="CMXXXVI";
allNumerals[936]="CMXXXVII";
allNumerals[937]="CMXXXVIII";
allNumerals[938]="CMXXXIX";
allNumerals[939]="CMXL";
allNumerals[940]="CMXLI";
allNumerals[941]="CMXLII";
allNumerals[942]="CMXLIII";
allNumerals[943]="CMXLIV";
allNumerals[944]="CMXLV";
allNumerals[945]="CMXLVI";
allNumerals[946]="CMXLVII";
allNumerals[947]="CMXLVIII";
allNumerals[948]="CMXLIX";
allNumerals[949]="CML";
allNumerals[950]="CMLI";
allNumerals[951]="CMLII";
allNumerals[952]="CMLIII";
allNumerals[953]="CMLIV";
allNumerals[954]="CMLV";
allNumerals[955]="CMLVI";
allNumerals[956]="CMLVII";
allNumerals[957]="CMLVIII";
allNumerals[958]="CMLIX";
allNumerals[959]="CMLX";
allNumerals[960]="CMLXI";
allNumerals[961]="CMLXII";
allNumerals[962]="CMLXIII";
allNumerals[963]="CMLXIV";
allNumerals[964]="CMLXV";
allNumerals[965]="CMLXVI";
allNumerals[966]="CMLXVII";
allNumerals[967]="CMLXVIII";
allNumerals[968]="CMLXIX";
allNumerals[969]="CMLXX";
allNumerals[970]="CMLXXI";
allNumerals[971]="CMLXXII";
allNumerals[972]="CMLXXIII";
allNumerals[973]="CMLXXIV";
allNumerals[974]="CMLXXV";
allNumerals[975]="CMLXXVI";
allNumerals[976]="CMLXXVII";
allNumerals[977]="CMLXXVIII";
allNumerals[978]="CMLXXIX";
allNumerals[979]="CMLXXX";
allNumerals[980]="CMLXXXI";
allNumerals[981]="CMLXXXII";
allNumerals[982]="CMLXXXIII";
allNumerals[983]="CMLXXXIV";
allNumerals[984]="CMLXXXV";
allNumerals[985]="CMLXXXVI";
allNumerals[986]="CMLXXXVII";
allNumerals[987]="CMLXXXVIII";
allNumerals[988]="CMLXXXIX";
allNumerals[989]="CMXC";
allNumerals[990]="CMXCI";
allNumerals[991]="CMXCII";
allNumerals[992]="CMXCIII";
allNumerals[993]="CMXCIV";
allNumerals[994]="CMXCV";
allNumerals[995]="CMXCVI";
allNumerals[996]="CMXCVII";
allNumerals[997]="CMXCVIII";
allNumerals[998]="CMXCIX";
allNumerals[999]="M";
allNumerals[1000]="MI";
allNumerals[1001]="MII";
allNumerals[1002]="MIII";
allNumerals[1003]="MIV";
allNumerals[1004]="MV";
allNumerals[1005]="MVI";
allNumerals[1006]="MVII";
allNumerals[1007]="MVIII";
allNumerals[1008]="MIX";
allNumerals[1009]="MX";
allNumerals[1010]="MXI";
allNumerals[1011]="MXII";
allNumerals[1012]="MXIII";
allNumerals[1013]="MXIV";
allNumerals[1014]="MXV";
allNumerals[1015]="MXVI";
allNumerals[1016]="MXVII";
allNumerals[1017]="MXVIII";
allNumerals[1018]="MXIX";
allNumerals[1019]="MXX";
allNumerals[1020]="MXXI";
allNumerals[1021]="MXXII";
allNumerals[1022]="MXXIII";
allNumerals[1023]="MXXIV";
allNumerals[1024]="MXXV";
allNumerals[1025]="MXXVI";
allNumerals[1026]="MXXVII";
allNumerals[1027]="MXXVIII";
allNumerals[1028]="MXXIX";
allNumerals[1029]="MXXX";
allNumerals[1030]="MXXXI";
allNumerals[1031]="MXXXII";
allNumerals[1032]="MXXXIII";
allNumerals[1033]="MXXXIV";
allNumerals[1034]="MXXXV";
allNumerals[1035]="MXXXVI";
allNumerals[1036]="MXXXVII";
allNumerals[1037]="MXXXVIII";
allNumerals[1038]="MXXXIX";
allNumerals[1039]="MXL";
allNumerals[1040]="MXLI";
allNumerals[1041]="MXLII";
allNumerals[1042]="MXLIII";
allNumerals[1043]="MXLIV";
allNumerals[1044]="MXLV";
allNumerals[1045]="MXLVI";
allNumerals[1046]="MXLVII";
allNumerals[1047]="MXLVIII";
allNumerals[1048]="MXLIX";
allNumerals[1049]="ML";
allNumerals[1050]="MLI";
allNumerals[1051]="MLII";
allNumerals[1052]="MLIII";
allNumerals[1053]="MLIV";
allNumerals[1054]="MLV";
allNumerals[1055]="MLVI";
allNumerals[1056]="MLVII";
allNumerals[1057]="MLVIII";
allNumerals[1058]="MLIX";
allNumerals[1059]="MLX";
allNumerals[1060]="MLXI";
allNumerals[1061]="MLXII";
allNumerals[1062]="MLXIII";
allNumerals[1063]="MLXIV";
allNumerals[1064]="MLXV";
allNumerals[1065]="MLXVI";
allNumerals[1066]="MLXVII";
allNumerals[1067]="MLXVIII";
allNumerals[1068]="MLXIX";
allNumerals[1069]="MLXX";
allNumerals[1070]="MLXXI";
allNumerals[1071]="MLXXII";
allNumerals[1072]="MLXXIII";
allNumerals[1073]="MLXXIV";
allNumerals[1074]="MLXXV";
allNumerals[1075]="MLXXVI";
allNumerals[1076]="MLXXVII";
allNumerals[1077]="MLXXVIII";
allNumerals[1078]="MLXXIX";
allNumerals[1079]="MLXXX";
allNumerals[1080]="MLXXXI";
allNumerals[1081]="MLXXXII";
allNumerals[1082]="MLXXXIII";
allNumerals[1083]="MLXXXIV";
allNumerals[1084]="MLXXXV";
allNumerals[1085]="MLXXXVI";
allNumerals[1086]="MLXXXVII";
allNumerals[1087]="MLXXXVIII";
allNumerals[1088]="MLXXXIX";
allNumerals[1089]="MXC";
allNumerals[1090]="MXCI";
allNumerals[1091]="MXCII";
allNumerals[1092]="MXCIII";
allNumerals[1093]="MXCIV";
allNumerals[1094]="MXCV";
allNumerals[1095]="MXCVI";
allNumerals[1096]="MXCVII";
allNumerals[1097]="MXCVIII";
allNumerals[1098]="MXCIX";
allNumerals[1099]="MC";
allNumerals[1100]="MCI";
allNumerals[1101]="MCII";
allNumerals[1102]="MCIII";
allNumerals[1103]="MCIV";
allNumerals[1104]="MCV";
allNumerals[1105]="MCVI";
allNumerals[1106]="MCVII";
allNumerals[1107]="MCVIII";
allNumerals[1108]="MCIX";
allNumerals[1109]="MCX";
allNumerals[1110]="MCXI";
allNumerals[1111]="MCXII";
allNumerals[1112]="MCXIII";
allNumerals[1113]="MCXIV";
allNumerals[1114]="MCXV";
allNumerals[1115]="MCXVI";
allNumerals[1116]="MCXVII";
allNumerals[1117]="MCXVIII";
allNumerals[1118]="MCXIX";
allNumerals[1119]="MCXX";
allNumerals[1120]="MCXXI";
allNumerals[1121]="MCXXII";
allNumerals[1122]="MCXXIII";
allNumerals[1123]="MCXXIV";
allNumerals[1124]="MCXXV";
allNumerals[1125]="MCXXVI";
allNumerals[1126]="MCXXVII";
allNumerals[1127]="MCXXVIII";
allNumerals[1128]="MCXXIX";
allNumerals[1129]="MCXXX";
allNumerals[1130]="MCXXXI";
allNumerals[1131]="MCXXXII";
allNumerals[1132]="MCXXXIII";
allNumerals[1133]="MCXXXIV";
allNumerals[1134]="MCXXXV";
allNumerals[1135]="MCXXXVI";
allNumerals[1136]="MCXXXVII";
allNumerals[1137]="MCXXXVIII";
allNumerals[1138]="MCXXXIX";
allNumerals[1139]="MCXL";
allNumerals[1140]="MCXLI";
allNumerals[1141]="MCXLII";
allNumerals[1142]="MCXLIII";
allNumerals[1143]="MCXLIV";
allNumerals[1144]="MCXLV";
allNumerals[1145]="MCXLVI";
allNumerals[1146]="MCXLVII";
allNumerals[1147]="MCXLVIII";
allNumerals[1148]="MCXLIX";
allNumerals[1149]="MCL";
allNumerals[1150]="MCLI";
allNumerals[1151]="MCLII";
allNumerals[1152]="MCLIII";
allNumerals[1153]="MCLIV";
allNumerals[1154]="MCLV";
allNumerals[1155]="MCLVI";
allNumerals[1156]="MCLVII";
allNumerals[1157]="MCLVIII";
allNumerals[1158]="MCLIX";
allNumerals[1159]="MCLX";
allNumerals[1160]="MCLXI";
allNumerals[1161]="MCLXII";
allNumerals[1162]="MCLXIII";
allNumerals[1163]="MCLXIV";
allNumerals[1164]="MCLXV";
allNumerals[1165]="MCLXVI";
allNumerals[1166]="MCLXVII";
allNumerals[1167]="MCLXVIII";
allNumerals[1168]="MCLXIX";
allNumerals[1169]="MCLXX";
allNumerals[1170]="MCLXXI";
allNumerals[1171]="MCLXXII";
allNumerals[1172]="MCLXXIII";
allNumerals[1173]="MCLXXIV";
allNumerals[1174]="MCLXXV";
allNumerals[1175]="MCLXXVI";
allNumerals[1176]="MCLXXVII";
allNumerals[1177]="MCLXXVIII";
allNumerals[1178]="MCLXXIX";
allNumerals[1179]="MCLXXX";
allNumerals[1180]="MCLXXXI";
allNumerals[1181]="MCLXXXII";
allNumerals[1182]="MCLXXXIII";
allNumerals[1183]="MCLXXXIV";
allNumerals[1184]="MCLXXXV";
allNumerals[1185]="MCLXXXVI";
allNumerals[1186]="MCLXXXVII";
allNumerals[1187]="MCLXXXVIII";
allNumerals[1188]="MCLXXXIX";
allNumerals[1189]="MCXC";
allNumerals[1190]="MCXCI";
allNumerals[1191]="MCXCII";
allNumerals[1192]="MCXCIII";
allNumerals[1193]="MCXCIV";
allNumerals[1194]="MCXCV";
allNumerals[1195]="MCXCVI";
allNumerals[1196]="MCXCVII";
allNumerals[1197]="MCXCVIII";
allNumerals[1198]="MCXCIX";
allNumerals[1199]="MCC";
allNumerals[1200]="MCCI";
allNumerals[1201]="MCCII";
allNumerals[1202]="MCCIII";
allNumerals[1203]="MCCIV";
allNumerals[1204]="MCCV";
allNumerals[1205]="MCCVI";
allNumerals[1206]="MCCVII";
allNumerals[1207]="MCCVIII";
allNumerals[1208]="MCCIX";
allNumerals[1209]="MCCX";
allNumerals[1210]="MCCXI";
allNumerals[1211]="MCCXII";
allNumerals[1212]="MCCXIII";
allNumerals[1213]="MCCXIV";
allNumerals[1214]="MCCXV";
allNumerals[1215]="MCCXVI";
allNumerals[1216]="MCCXVII";
allNumerals[1217]="MCCXVIII";
allNumerals[1218]="MCCXIX";
allNumerals[1219]="MCCXX";
allNumerals[1220]="MCCXXI";
allNumerals[1221]="MCCXXII";
allNumerals[1222]="MCCXXIII";
allNumerals[1223]="MCCXXIV";
allNumerals[1224]="MCCXXV";
allNumerals[1225]="MCCXXVI";
allNumerals[1226]="MCCXXVII";
allNumerals[1227]="MCCXXVIII";
allNumerals[1228]="MCCXXIX";
allNumerals[1229]="MCCXXX";
allNumerals[1230]="MCCXXXI";
allNumerals[1231]="MCCXXXII";
allNumerals[1232]="MCCXXXIII";
allNumerals[1233]="MCCXXXIV";
allNumerals[1234]="MCCXXXV";
allNumerals[1235]="MCCXXXVI";
allNumerals[1236]="MCCXXXVII";
allNumerals[1237]="MCCXXXVIII";
allNumerals[1238]="MCCXXXIX";
allNumerals[1239]="MCCXL";
allNumerals[1240]="MCCXLI";
allNumerals[1241]="MCCXLII";
allNumerals[1242]="MCCXLIII";
allNumerals[1243]="MCCXLIV";
allNumerals[1244]="MCCXLV";
allNumerals[1245]="MCCXLVI";
allNumerals[1246]="MCCXLVII";
allNumerals[1247]="MCCXLVIII";
allNumerals[1248]="MCCXLIX";
allNumerals[1249]="MCCL";
allNumerals[1250]="MCCLI";
allNumerals[1251]="MCCLII";
allNumerals[1252]="MCCLIII";
allNumerals[1253]="MCCLIV";
allNumerals[1254]="MCCLV";
allNumerals[1255]="MCCLVI";
allNumerals[1256]="MCCLVII";
allNumerals[1257]="MCCLVIII";
allNumerals[1258]="MCCLIX";
allNumerals[1259]="MCCLX";
allNumerals[1260]="MCCLXI";
allNumerals[1261]="MCCLXII";
allNumerals[1262]="MCCLXIII";
allNumerals[1263]="MCCLXIV";
allNumerals[1264]="MCCLXV";
allNumerals[1265]="MCCLXVI";
allNumerals[1266]="MCCLXVII";
allNumerals[1267]="MCCLXVIII";
allNumerals[1268]="MCCLXIX";
allNumerals[1269]="MCCLXX";
allNumerals[1270]="MCCLXXI";
allNumerals[1271]="MCCLXXII";
allNumerals[1272]="MCCLXXIII";
allNumerals[1273]="MCCLXXIV";
allNumerals[1274]="MCCLXXV";
allNumerals[1275]="MCCLXXVI";
allNumerals[1276]="MCCLXXVII";
allNumerals[1277]="MCCLXXVIII";
allNumerals[1278]="MCCLXXIX";
allNumerals[1279]="MCCLXXX";
allNumerals[1280]="MCCLXXXI";
allNumerals[1281]="MCCLXXXII";
allNumerals[1282]="MCCLXXXIII";
allNumerals[1283]="MCCLXXXIV";
allNumerals[1284]="MCCLXXXV";
allNumerals[1285]="MCCLXXXVI";
allNumerals[1286]="MCCLXXXVII";
allNumerals[1287]="MCCLXXXVIII";
allNumerals[1288]="MCCLXXXIX";
allNumerals[1289]="MCCXC";
allNumerals[1290]="MCCXCI";
allNumerals[1291]="MCCXCII";
allNumerals[1292]="MCCXCIII";
allNumerals[1293]="MCCXCIV";
allNumerals[1294]="MCCXCV";
allNumerals[1295]="MCCXCVI";
allNumerals[1296]="MCCXCVII";
allNumerals[1297]="MCCXCVIII";
allNumerals[1298]="MCCXCIX";
allNumerals[1299]="MCCC";
allNumerals[1300]="MCCCI";
allNumerals[1301]="MCCCII";
allNumerals[1302]="MCCCIII";
allNumerals[1303]="MCCCIV";
allNumerals[1304]="MCCCV";
allNumerals[1305]="MCCCVI";
allNumerals[1306]="MCCCVII";
allNumerals[1307]="MCCCVIII";
allNumerals[1308]="MCCCIX";
allNumerals[1309]="MCCCX";
allNumerals[1310]="MCCCXI";
allNumerals[1311]="MCCCXII";
allNumerals[1312]="MCCCXIII";
allNumerals[1313]="MCCCXIV";
allNumerals[1314]="MCCCXV";
allNumerals[1315]="MCCCXVI";
allNumerals[1316]="MCCCXVII";
allNumerals[1317]="MCCCXVIII";
allNumerals[1318]="MCCCXIX";
allNumerals[1319]="MCCCXX";
allNumerals[1320]="MCCCXXI";
allNumerals[1321]="MCCCXXII";
allNumerals[1322]="MCCCXXIII";
allNumerals[1323]="MCCCXXIV";
allNumerals[1324]="MCCCXXV";
allNumerals[1325]="MCCCXXVI";
allNumerals[1326]="MCCCXXVII";
allNumerals[1327]="MCCCXXVIII";
allNumerals[1328]="MCCCXXIX";
allNumerals[1329]="MCCCXXX";
allNumerals[1330]="MCCCXXXI";
allNumerals[1331]="MCCCXXXII";
allNumerals[1332]="MCCCXXXIII";
allNumerals[1333]="MCCCXXXIV";
allNumerals[1334]="MCCCXXXV";
allNumerals[1335]="MCCCXXXVI";
allNumerals[1336]="MCCCXXXVII";
allNumerals[1337]="MCCCXXXVIII";
allNumerals[1338]="MCCCXXXIX";
allNumerals[1339]="MCCCXL";
allNumerals[1340]="MCCCXLI";
allNumerals[1341]="MCCCXLII";
allNumerals[1342]="MCCCXLIII";
allNumerals[1343]="MCCCXLIV";
allNumerals[1344]="MCCCXLV";
allNumerals[1345]="MCCCXLVI";
allNumerals[1346]="MCCCXLVII";
allNumerals[1347]="MCCCXLVIII";
allNumerals[1348]="MCCCXLIX";
allNumerals[1349]="MCCCL";
allNumerals[1350]="MCCCLI";
allNumerals[1351]="MCCCLII";
allNumerals[1352]="MCCCLIII";
allNumerals[1353]="MCCCLIV";
allNumerals[1354]="MCCCLV";
allNumerals[1355]="MCCCLVI";
allNumerals[1356]="MCCCLVII";
allNumerals[1357]="MCCCLVIII";
allNumerals[1358]="MCCCLIX";
allNumerals[1359]="MCCCLX";
allNumerals[1360]="MCCCLXI";
allNumerals[1361]="MCCCLXII";
allNumerals[1362]="MCCCLXIII";
allNumerals[1363]="MCCCLXIV";
allNumerals[1364]="MCCCLXV";
allNumerals[1365]="MCCCLXVI";
allNumerals[1366]="MCCCLXVII";
allNumerals[1367]="MCCCLXVIII";
allNumerals[1368]="MCCCLXIX";
allNumerals[1369]="MCCCLXX";
allNumerals[1370]="MCCCLXXI";
allNumerals[1371]="MCCCLXXII";
allNumerals[1372]="MCCCLXXIII";
allNumerals[1373]="MCCCLXXIV";
allNumerals[1374]="MCCCLXXV";
allNumerals[1375]="MCCCLXXVI";
allNumerals[1376]="MCCCLXXVII";
allNumerals[1377]="MCCCLXXVIII";
allNumerals[1378]="MCCCLXXIX";
allNumerals[1379]="MCCCLXXX";
allNumerals[1380]="MCCCLXXXI";
allNumerals[1381]="MCCCLXXXII";
allNumerals[1382]="MCCCLXXXIII";
allNumerals[1383]="MCCCLXXXIV";
allNumerals[1384]="MCCCLXXXV";
allNumerals[1385]="MCCCLXXXVI";
allNumerals[1386]="MCCCLXXXVII";
allNumerals[1387]="MCCCLXXXVIII";
allNumerals[1388]="MCCCLXXXIX";
allNumerals[1389]="MCCCXC";
allNumerals[1390]="MCCCXCI";
allNumerals[1391]="MCCCXCII";
allNumerals[1392]="MCCCXCIII";
allNumerals[1393]="MCCCXCIV";
allNumerals[1394]="MCCCXCV";
allNumerals[1395]="MCCCXCVI";
allNumerals[1396]="MCCCXCVII";
allNumerals[1397]="MCCCXCVIII";
allNumerals[1398]="MCCCXCIX";
allNumerals[1399]="MCD";
allNumerals[1400]="MCDI";
allNumerals[1401]="MCDII";
allNumerals[1402]="MCDIII";
allNumerals[1403]="MCDIV";
allNumerals[1404]="MCDV";
allNumerals[1405]="MCDVI";
allNumerals[1406]="MCDVII";
allNumerals[1407]="MCDVIII";
allNumerals[1408]="MCDIX";
allNumerals[1409]="MCDX";
allNumerals[1410]="MCDXI";
allNumerals[1411]="MCDXII";
allNumerals[1412]="MCDXIII";
allNumerals[1413]="MCDXIV";
allNumerals[1414]="MCDXV";
allNumerals[1415]="MCDXVI";
allNumerals[1416]="MCDXVII";
allNumerals[1417]="MCDXVIII";
allNumerals[1418]="MCDXIX";
allNumerals[1419]="MCDXX";
allNumerals[1420]="MCDXXI";
allNumerals[1421]="MCDXXII";
allNumerals[1422]="MCDXXIII";
allNumerals[1423]="MCDXXIV";
allNumerals[1424]="MCDXXV";
allNumerals[1425]="MCDXXVI";
allNumerals[1426]="MCDXXVII";
allNumerals[1427]="MCDXXVIII";
allNumerals[1428]="MCDXXIX";
allNumerals[1429]="MCDXXX";
allNumerals[1430]="MCDXXXI";
allNumerals[1431]="MCDXXXII";
allNumerals[1432]="MCDXXXIII";
allNumerals[1433]="MCDXXXIV";
allNumerals[1434]="MCDXXXV";
allNumerals[1435]="MCDXXXVI";
allNumerals[1436]="MCDXXXVII";
allNumerals[1437]="MCDXXXVIII";
allNumerals[1438]="MCDXXXIX";
allNumerals[1439]="MCDXL";
allNumerals[1440]="MCDXLI";
allNumerals[1441]="MCDXLII";
allNumerals[1442]="MCDXLIII";
allNumerals[1443]="MCDXLIV";
allNumerals[1444]="MCDXLV";
allNumerals[1445]="MCDXLVI";
allNumerals[1446]="MCDXLVII";
allNumerals[1447]="MCDXLVIII";
allNumerals[1448]="MCDXLIX";
allNumerals[1449]="MCDL";
allNumerals[1450]="MCDLI";
allNumerals[1451]="MCDLII";
allNumerals[1452]="MCDLIII";
allNumerals[1453]="MCDLIV";
allNumerals[1454]="MCDLV";
allNumerals[1455]="MCDLVI";
allNumerals[1456]="MCDLVII";
allNumerals[1457]="MCDLVIII";
allNumerals[1458]="MCDLIX";
allNumerals[1459]="MCDLX";
allNumerals[1460]="MCDLXI";
allNumerals[1461]="MCDLXII";
allNumerals[1462]="MCDLXIII";
allNumerals[1463]="MCDLXIV";
allNumerals[1464]="MCDLXV";
allNumerals[1465]="MCDLXVI";
allNumerals[1466]="MCDLXVII";
allNumerals[1467]="MCDLXVIII";
allNumerals[1468]="MCDLXIX";
allNumerals[1469]="MCDLXX";
allNumerals[1470]="MCDLXXI";
allNumerals[1471]="MCDLXXII";
allNumerals[1472]="MCDLXXIII";
allNumerals[1473]="MCDLXXIV";
allNumerals[1474]="MCDLXXV";
allNumerals[1475]="MCDLXXVI";
allNumerals[1476]="MCDLXXVII";
allNumerals[1477]="MCDLXXVIII";
allNumerals[1478]="MCDLXXIX";
allNumerals[1479]="MCDLXXX";
allNumerals[1480]="MCDLXXXI";
allNumerals[1481]="MCDLXXXII";
allNumerals[1482]="MCDLXXXIII";
allNumerals[1483]="MCDLXXXIV";
allNumerals[1484]="MCDLXXXV";
allNumerals[1485]="MCDLXXXVI";
allNumerals[1486]="MCDLXXXVII";
allNumerals[1487]="MCDLXXXVIII";
allNumerals[1488]="MCDLXXXIX";
allNumerals[1489]="MCDXC";
allNumerals[1490]="MCDXCI";
allNumerals[1491]="MCDXCII";
allNumerals[1492]="MCDXCIII";
allNumerals[1493]="MCDXCIV";
allNumerals[1494]="MCDXCV";
allNumerals[1495]="MCDXCVI";
allNumerals[1496]="MCDXCVII";
allNumerals[1497]="MCDXCVIII";
allNumerals[1498]="MCDXCIX";
allNumerals[1499]="MD";
allNumerals[1500]="MDI";
allNumerals[1501]="MDII";
allNumerals[1502]="MDIII";
allNumerals[1503]="MDIV";
allNumerals[1504]="MDV";
allNumerals[1505]="MDVI";
allNumerals[1506]="MDVII";
allNumerals[1507]="MDVIII";
allNumerals[1508]="MDIX";
allNumerals[1509]="MDX";
allNumerals[1510]="MDXI";
allNumerals[1511]="MDXII";
allNumerals[1512]="MDXIII";
allNumerals[1513]="MDXIV";
allNumerals[1514]="MDXV";
allNumerals[1515]="MDXVI";
allNumerals[1516]="MDXVII";
allNumerals[1517]="MDXVIII";
allNumerals[1518]="MDXIX";
allNumerals[1519]="MDXX";
allNumerals[1520]="MDXXI";
allNumerals[1521]="MDXXII";
allNumerals[1522]="MDXXIII";
allNumerals[1523]="MDXXIV";
allNumerals[1524]="MDXXV";
allNumerals[1525]="MDXXVI";
allNumerals[1526]="MDXXVII";
allNumerals[1527]="MDXXVIII";
allNumerals[1528]="MDXXIX";
allNumerals[1529]="MDXXX";
allNumerals[1530]="MDXXXI";
allNumerals[1531]="MDXXXII";
allNumerals[1532]="MDXXXIII";
allNumerals[1533]="MDXXXIV";
allNumerals[1534]="MDXXXV";
allNumerals[1535]="MDXXXVI";
allNumerals[1536]="MDXXXVII";
allNumerals[1537]="MDXXXVIII";
allNumerals[1538]="MDXXXIX";
allNumerals[1539]="MDXL";
allNumerals[1540]="MDXLI";
allNumerals[1541]="MDXLII";
allNumerals[1542]="MDXLIII";
allNumerals[1543]="MDXLIV";
allNumerals[1544]="MDXLV";
allNumerals[1545]="MDXLVI";
allNumerals[1546]="MDXLVII";
allNumerals[1547]="MDXLVIII";
allNumerals[1548]="MDXLIX";
allNumerals[1549]="MDL";
allNumerals[1550]="MDLI";
allNumerals[1551]="MDLII";
allNumerals[1552]="MDLIII";
allNumerals[1553]="MDLIV";
allNumerals[1554]="MDLV";
allNumerals[1555]="MDLVI";
allNumerals[1556]="MDLVII";
allNumerals[1557]="MDLVIII";
allNumerals[1558]="MDLIX";
allNumerals[1559]="MDLX";
allNumerals[1560]="MDLXI";
allNumerals[1561]="MDLXII";
allNumerals[1562]="MDLXIII";
allNumerals[1563]="MDLXIV";
allNumerals[1564]="MDLXV";
allNumerals[1565]="MDLXVI";
allNumerals[1566]="MDLXVII";
allNumerals[1567]="MDLXVIII";
allNumerals[1568]="MDLXIX";
allNumerals[1569]="MDLXX";
allNumerals[1570]="MDLXXI";
allNumerals[1571]="MDLXXII";
allNumerals[1572]="MDLXXIII";
allNumerals[1573]="MDLXXIV";
allNumerals[1574]="MDLXXV";
allNumerals[1575]="MDLXXVI";
allNumerals[1576]="MDLXXVII";
allNumerals[1577]="MDLXXVIII";
allNumerals[1578]="MDLXXIX";
allNumerals[1579]="MDLXXX";
allNumerals[1580]="MDLXXXI";
allNumerals[1581]="MDLXXXII";
allNumerals[1582]="MDLXXXIII";
allNumerals[1583]="MDLXXXIV";
allNumerals[1584]="MDLXXXV";
allNumerals[1585]="MDLXXXVI";
allNumerals[1586]="MDLXXXVII";
allNumerals[1587]="MDLXXXVIII";
allNumerals[1588]="MDLXXXIX";
allNumerals[1589]="MDXC";
allNumerals[1590]="MDXCI";
allNumerals[1591]="MDXCII";
allNumerals[1592]="MDXCIII";
allNumerals[1593]="MDXCIV";
allNumerals[1594]="MDXCV";
allNumerals[1595]="MDXCVI";
allNumerals[1596]="MDXCVII";
allNumerals[1597]="MDXCVIII";
allNumerals[1598]="MDXCIX";
allNumerals[1599]="MDC";
allNumerals[1600]="MDCI";
allNumerals[1601]="MDCII";
allNumerals[1602]="MDCIII";
allNumerals[1603]="MDCIV";
allNumerals[1604]="MDCV";
allNumerals[1605]="MDCVI";
allNumerals[1606]="MDCVII";
allNumerals[1607]="MDCVIII";
allNumerals[1608]="MDCIX";
allNumerals[1609]="MDCX";
allNumerals[1610]="MDCXI";
allNumerals[1611]="MDCXII";
allNumerals[1612]="MDCXIII";
allNumerals[1613]="MDCXIV";
allNumerals[1614]="MDCXV";
allNumerals[1615]="MDCXVI";
allNumerals[1616]="MDCXVII";
allNumerals[1617]="MDCXVIII";
allNumerals[1618]="MDCXIX";
allNumerals[1619]="MDCXX";
allNumerals[1620]="MDCXXI";
allNumerals[1621]="MDCXXII";
allNumerals[1622]="MDCXXIII";
allNumerals[1623]="MDCXXIV";
allNumerals[1624]="MDCXXV";
allNumerals[1625]="MDCXXVI";
allNumerals[1626]="MDCXXVII";
allNumerals[1627]="MDCXXVIII";
allNumerals[1628]="MDCXXIX";
allNumerals[1629]="MDCXXX";
allNumerals[1630]="MDCXXXI";
allNumerals[1631]="MDCXXXII";
allNumerals[1632]="MDCXXXIII";
allNumerals[1633]="MDCXXXIV";
allNumerals[1634]="MDCXXXV";
allNumerals[1635]="MDCXXXVI";
allNumerals[1636]="MDCXXXVII";
allNumerals[1637]="MDCXXXVIII";
allNumerals[1638]="MDCXXXIX";
allNumerals[1639]="MDCXL";
allNumerals[1640]="MDCXLI";
allNumerals[1641]="MDCXLII";
allNumerals[1642]="MDCXLIII";
allNumerals[1643]="MDCXLIV";
allNumerals[1644]="MDCXLV";
allNumerals[1645]="MDCXLVI";
allNumerals[1646]="MDCXLVII";
allNumerals[1647]="MDCXLVIII";
allNumerals[1648]="MDCXLIX";
allNumerals[1649]="MDCL";
allNumerals[1650]="MDCLI";
allNumerals[1651]="MDCLII";
allNumerals[1652]="MDCLIII";
allNumerals[1653]="MDCLIV";
allNumerals[1654]="MDCLV";
allNumerals[1655]="MDCLVI";
allNumerals[1656]="MDCLVII";
allNumerals[1657]="MDCLVIII";
allNumerals[1658]="MDCLIX";
allNumerals[1659]="MDCLX";
allNumerals[1660]="MDCLXI";
allNumerals[1661]="MDCLXII";
allNumerals[1662]="MDCLXIII";
allNumerals[1663]="MDCLXIV";
allNumerals[1664]="MDCLXV";
allNumerals[1665]="MDCLXVI";
allNumerals[1666]="MDCLXVII";
allNumerals[1667]="MDCLXVIII";
allNumerals[1668]="MDCLXIX";
allNumerals[1669]="MDCLXX";
allNumerals[1670]="MDCLXXI";
allNumerals[1671]="MDCLXXII";
allNumerals[1672]="MDCLXXIII";
allNumerals[1673]="MDCLXXIV";
allNumerals[1674]="MDCLXXV";
allNumerals[1675]="MDCLXXVI";
allNumerals[1676]="MDCLXXVII";
allNumerals[1677]="MDCLXXVIII";
allNumerals[1678]="MDCLXXIX";
allNumerals[1679]="MDCLXXX";
allNumerals[1680]="MDCLXXXI";
allNumerals[1681]="MDCLXXXII";
allNumerals[1682]="MDCLXXXIII";
allNumerals[1683]="MDCLXXXIV";
allNumerals[1684]="MDCLXXXV";
allNumerals[1685]="MDCLXXXVI";
allNumerals[1686]="MDCLXXXVII";
allNumerals[1687]="MDCLXXXVIII";
allNumerals[1688]="MDCLXXXIX";
allNumerals[1689]="MDCXC";
allNumerals[1690]="MDCXCI";
allNumerals[1691]="MDCXCII";
allNumerals[1692]="MDCXCIII";
allNumerals[1693]="MDCXCIV";
allNumerals[1694]="MDCXCV";
allNumerals[1695]="MDCXCVI";
allNumerals[1696]="MDCXCVII";
allNumerals[1697]="MDCXCVIII";
allNumerals[1698]="MDCXCIX";
allNumerals[1699]="MDCC";
allNumerals[1700]="MDCCI";
allNumerals[1701]="MDCCII";
allNumerals[1702]="MDCCIII";
allNumerals[1703]="MDCCIV";
allNumerals[1704]="MDCCV";
allNumerals[1705]="MDCCVI";
allNumerals[1706]="MDCCVII";
allNumerals[1707]="MDCCVIII";
allNumerals[1708]="MDCCIX";
allNumerals[1709]="MDCCX";
allNumerals[1710]="MDCCXI";
allNumerals[1711]="MDCCXII";
allNumerals[1712]="MDCCXIII";
allNumerals[1713]="MDCCXIV";
allNumerals[1714]="MDCCXV";
allNumerals[1715]="MDCCXVI";
allNumerals[1716]="MDCCXVII";
allNumerals[1717]="MDCCXVIII";
allNumerals[1718]="MDCCXIX";
allNumerals[1719]="MDCCXX";
allNumerals[1720]="MDCCXXI";
allNumerals[1721]="MDCCXXII";
allNumerals[1722]="MDCCXXIII";
allNumerals[1723]="MDCCXXIV";
allNumerals[1724]="MDCCXXV";
allNumerals[1725]="MDCCXXVI";
allNumerals[1726]="MDCCXXVII";
allNumerals[1727]="MDCCXXVIII";
allNumerals[1728]="MDCCXXIX";
allNumerals[1729]="MDCCXXX";
allNumerals[1730]="MDCCXXXI";
allNumerals[1731]="MDCCXXXII";
allNumerals[1732]="MDCCXXXIII";
allNumerals[1733]="MDCCXXXIV";
allNumerals[1734]="MDCCXXXV";
allNumerals[1735]="MDCCXXXVI";
allNumerals[1736]="MDCCXXXVII";
allNumerals[1737]="MDCCXXXVIII";
allNumerals[1738]="MDCCXXXIX";
allNumerals[1739]="MDCCXL";
allNumerals[1740]="MDCCXLI";
allNumerals[1741]="MDCCXLII";
allNumerals[1742]="MDCCXLIII";
allNumerals[1743]="MDCCXLIV";
allNumerals[1744]="MDCCXLV";
allNumerals[1745]="MDCCXLVI";
allNumerals[1746]="MDCCXLVII";
allNumerals[1747]="MDCCXLVIII";
allNumerals[1748]="MDCCXLIX";
allNumerals[1749]="MDCCL";
allNumerals[1750]="MDCCLI";
allNumerals[1751]="MDCCLII";
allNumerals[1752]="MDCCLIII";
allNumerals[1753]="MDCCLIV";
allNumerals[1754]="MDCCLV";
allNumerals[1755]="MDCCLVI";
allNumerals[1756]="MDCCLVII";
allNumerals[1757]="MDCCLVIII";
allNumerals[1758]="MDCCLIX";
allNumerals[1759]="MDCCLX";
allNumerals[1760]="MDCCLXI";
allNumerals[1761]="MDCCLXII";
allNumerals[1762]="MDCCLXIII";
allNumerals[1763]="MDCCLXIV";
allNumerals[1764]="MDCCLXV";
allNumerals[1765]="MDCCLXVI";
allNumerals[1766]="MDCCLXVII";
allNumerals[1767]="MDCCLXVIII";
allNumerals[1768]="MDCCLXIX";
allNumerals[1769]="MDCCLXX";
allNumerals[1770]="MDCCLXXI";
allNumerals[1771]="MDCCLXXII";
allNumerals[1772]="MDCCLXXIII";
allNumerals[1773]="MDCCLXXIV";
allNumerals[1774]="MDCCLXXV";
allNumerals[1775]="MDCCLXXVI";
allNumerals[1776]="MDCCLXXVII";
allNumerals[1777]="MDCCLXXVIII";
allNumerals[1778]="MDCCLXXIX";
allNumerals[1779]="MDCCLXXX";
allNumerals[1780]="MDCCLXXXI";
allNumerals[1781]="MDCCLXXXII";
allNumerals[1782]="MDCCLXXXIII";
allNumerals[1783]="MDCCLXXXIV";
allNumerals[1784]="MDCCLXXXV";
allNumerals[1785]="MDCCLXXXVI";
allNumerals[1786]="MDCCLXXXVII";
allNumerals[1787]="MDCCLXXXVIII";
allNumerals[1788]="MDCCLXXXIX";
allNumerals[1789]="MDCCXC";
allNumerals[1790]="MDCCXCI";
allNumerals[1791]="MDCCXCII";
allNumerals[1792]="MDCCXCIII";
allNumerals[1793]="MDCCXCIV";
allNumerals[1794]="MDCCXCV";
allNumerals[1795]="MDCCXCVI";
allNumerals[1796]="MDCCXCVII";
allNumerals[1797]="MDCCXCVIII";
allNumerals[1798]="MDCCXCIX";
allNumerals[1799]="MDCCC";
allNumerals[1800]="MDCCCI";
allNumerals[1801]="MDCCCII";
allNumerals[1802]="MDCCCIII";
allNumerals[1803]="MDCCCIV";
allNumerals[1804]="MDCCCV";
allNumerals[1805]="MDCCCVI";
allNumerals[1806]="MDCCCVII";
allNumerals[1807]="MDCCCVIII";
allNumerals[1808]="MDCCCIX";
allNumerals[1809]="MDCCCX";
allNumerals[1810]="MDCCCXI";
allNumerals[1811]="MDCCCXII";
allNumerals[1812]="MDCCCXIII";
allNumerals[1813]="MDCCCXIV";
allNumerals[1814]="MDCCCXV";
allNumerals[1815]="MDCCCXVI";
allNumerals[1816]="MDCCCXVII";
allNumerals[1817]="MDCCCXVIII";
allNumerals[1818]="MDCCCXIX";
allNumerals[1819]="MDCCCXX";
allNumerals[1820]="MDCCCXXI";
allNumerals[1821]="MDCCCXXII";
allNumerals[1822]="MDCCCXXIII";
allNumerals[1823]="MDCCCXXIV";
allNumerals[1824]="MDCCCXXV";
allNumerals[1825]="MDCCCXXVI";
allNumerals[1826]="MDCCCXXVII";
allNumerals[1827]="MDCCCXXVIII";
allNumerals[1828]="MDCCCXXIX";
allNumerals[1829]="MDCCCXXX";
allNumerals[1830]="MDCCCXXXI";
allNumerals[1831]="MDCCCXXXII";
allNumerals[1832]="MDCCCXXXIII";
allNumerals[1833]="MDCCCXXXIV";
allNumerals[1834]="MDCCCXXXV";
allNumerals[1835]="MDCCCXXXVI";
allNumerals[1836]="MDCCCXXXVII";
allNumerals[1837]="MDCCCXXXVIII";
allNumerals[1838]="MDCCCXXXIX";
allNumerals[1839]="MDCCCXL";
allNumerals[1840]="MDCCCXLI";
allNumerals[1841]="MDCCCXLII";
allNumerals[1842]="MDCCCXLIII";
allNumerals[1843]="MDCCCXLIV";
allNumerals[1844]="MDCCCXLV";
allNumerals[1845]="MDCCCXLVI";
allNumerals[1846]="MDCCCXLVII";
allNumerals[1847]="MDCCCXLVIII";
allNumerals[1848]="MDCCCXLIX";
allNumerals[1849]="MDCCCL";
allNumerals[1850]="MDCCCLI";
allNumerals[1851]="MDCCCLII";
allNumerals[1852]="MDCCCLIII";
allNumerals[1853]="MDCCCLIV";
allNumerals[1854]="MDCCCLV";
allNumerals[1855]="MDCCCLVI";
allNumerals[1856]="MDCCCLVII";
allNumerals[1857]="MDCCCLVIII";
allNumerals[1858]="MDCCCLIX";
allNumerals[1859]="MDCCCLX";
allNumerals[1860]="MDCCCLXI";
allNumerals[1861]="MDCCCLXII";
allNumerals[1862]="MDCCCLXIII";
allNumerals[1863]="MDCCCLXIV";
allNumerals[1864]="MDCCCLXV";
allNumerals[1865]="MDCCCLXVI";
allNumerals[1866]="MDCCCLXVII";
allNumerals[1867]="MDCCCLXVIII";
allNumerals[1868]="MDCCCLXIX";
allNumerals[1869]="MDCCCLXX";
allNumerals[1870]="MDCCCLXXI";
allNumerals[1871]="MDCCCLXXII";
allNumerals[1872]="MDCCCLXXIII";
allNumerals[1873]="MDCCCLXXIV";
allNumerals[1874]="MDCCCLXXV";
allNumerals[1875]="MDCCCLXXVI";
allNumerals[1876]="MDCCCLXXVII";
allNumerals[1877]="MDCCCLXXVIII";
allNumerals[1878]="MDCCCLXXIX";
allNumerals[1879]="MDCCCLXXX";
allNumerals[1880]="MDCCCLXXXI";
allNumerals[1881]="MDCCCLXXXII";
allNumerals[1882]="MDCCCLXXXIII";
allNumerals[1883]="MDCCCLXXXIV";
allNumerals[1884]="MDCCCLXXXV";
allNumerals[1885]="MDCCCLXXXVI";
allNumerals[1886]="MDCCCLXXXVII";
allNumerals[1887]="MDCCCLXXXVIII";
allNumerals[1888]="MDCCCLXXXIX";
allNumerals[1889]="MDCCCXC";
allNumerals[1890]="MDCCCXCI";
allNumerals[1891]="MDCCCXCII";
allNumerals[1892]="MDCCCXCIII";
allNumerals[1893]="MDCCCXCIV";
allNumerals[1894]="MDCCCXCV";
allNumerals[1895]="MDCCCXCVI";
allNumerals[1896]="MDCCCXCVII";
allNumerals[1897]="MDCCCXCVIII";
allNumerals[1898]="MDCCCXCIX";
allNumerals[1899]="MCM";
allNumerals[1900]="MCMI";
allNumerals[1901]="MCMII";
allNumerals[1902]="MCMIII";
allNumerals[1903]="MCMIV";
allNumerals[1904]="MCMV";
allNumerals[1905]="MCMVI";
allNumerals[1906]="MCMVII";
allNumerals[1907]="MCMVIII";
allNumerals[1908]="MCMIX";
allNumerals[1909]="MCMX";
allNumerals[1910]="MCMXI";
allNumerals[1911]="MCMXII";
allNumerals[1912]="MCMXIII";
allNumerals[1913]="MCMXIV";
allNumerals[1914]="MCMXV";
allNumerals[1915]="MCMXVI";
allNumerals[1916]="MCMXVII";
allNumerals[1917]="MCMXVIII";
allNumerals[1918]="MCMXIX";
allNumerals[1919]="MCMXX";
allNumerals[1920]="MCMXXI";
allNumerals[1921]="MCMXXII";
allNumerals[1922]="MCMXXIII";
allNumerals[1923]="MCMXXIV";
allNumerals[1924]="MCMXXV";
allNumerals[1925]="MCMXXVI";
allNumerals[1926]="MCMXXVII";
allNumerals[1927]="MCMXXVIII";
allNumerals[1928]="MCMXXIX";
allNumerals[1929]="MCMXXX";
allNumerals[1930]="MCMXXXI";
allNumerals[1931]="MCMXXXII";
allNumerals[1932]="MCMXXXIII";
allNumerals[1933]="MCMXXXIV";
allNumerals[1934]="MCMXXXV";
allNumerals[1935]="MCMXXXVI";
allNumerals[1936]="MCMXXXVII";
allNumerals[1937]="MCMXXXVIII";
allNumerals[1938]="MCMXXXIX";
allNumerals[1939]="MCMXL";
allNumerals[1940]="MCMXLI";
allNumerals[1941]="MCMXLII";
allNumerals[1942]="MCMXLIII";
allNumerals[1943]="MCMXLIV";
allNumerals[1944]="MCMXLV";
allNumerals[1945]="MCMXLVI";
allNumerals[1946]="MCMXLVII";
allNumerals[1947]="MCMXLVIII";
allNumerals[1948]="MCMXLIX";
allNumerals[1949]="MCML";
allNumerals[1950]="MCMLI";
allNumerals[1951]="MCMLII";
allNumerals[1952]="MCMLIII";
allNumerals[1953]="MCMLIV";
allNumerals[1954]="MCMLV";
allNumerals[1955]="MCMLVI";
allNumerals[1956]="MCMLVII";
allNumerals[1957]="MCMLVIII";
allNumerals[1958]="MCMLIX";
allNumerals[1959]="MCMLX";
allNumerals[1960]="MCMLXI";
allNumerals[1961]="MCMLXII";
allNumerals[1962]="MCMLXIII";
allNumerals[1963]="MCMLXIV";
allNumerals[1964]="MCMLXV";
allNumerals[1965]="MCMLXVI";
allNumerals[1966]="MCMLXVII";
allNumerals[1967]="MCMLXVIII";
allNumerals[1968]="MCMLXIX";
allNumerals[1969]="MCMLXX";
allNumerals[1970]="MCMLXXI";
allNumerals[1971]="MCMLXXII";
allNumerals[1972]="MCMLXXIII";
allNumerals[1973]="MCMLXXIV";
allNumerals[1974]="MCMLXXV";
allNumerals[1975]="MCMLXXVI";
allNumerals[1976]="MCMLXXVII";
allNumerals[1977]="MCMLXXVIII";
allNumerals[1978]="MCMLXXIX";
allNumerals[1979]="MCMLXXX";
allNumerals[1980]="MCMLXXXI";
allNumerals[1981]="MCMLXXXII";
allNumerals[1982]="MCMLXXXIII";
allNumerals[1983]="MCMLXXXIV";
allNumerals[1984]="MCMLXXXV";
allNumerals[1985]="MCMLXXXVI";
allNumerals[1986]="MCMLXXXVII";
allNumerals[1987]="MCMLXXXVIII";
allNumerals[1988]="MCMLXXXIX";
allNumerals[1989]="MCMXC";
allNumerals[1990]="MCMXCI";
allNumerals[1991]="MCMXCII";
allNumerals[1992]="MCMXCIII";
allNumerals[1993]="MCMXCIV";
allNumerals[1994]="MCMXCV";
allNumerals[1995]="MCMXCVI";
allNumerals[1996]="MCMXCVII";
allNumerals[1997]="MCMXCVIII";
allNumerals[1998]="MCMXCIX";
allNumerals[1999]="MM";
allNumerals[2000]="MMI";
allNumerals[2001]="MMII";
allNumerals[2002]="MMIII";
allNumerals[2003]="MMIV";
allNumerals[2004]="MMV";
allNumerals[2005]="MMVI";
allNumerals[2006]="MMVII";
allNumerals[2007]="MMVIII";
allNumerals[2008]="MMIX";
allNumerals[2009]="MMX";
allNumerals[2010]="MMXI";
allNumerals[2011]="MMXII";
allNumerals[2012]="MMXIII";
allNumerals[2013]="MMXIV";
allNumerals[2014]="MMXV";
allNumerals[2015]="MMXVI";
allNumerals[2016]="MMXVII";
allNumerals[2017]="MMXVIII";
allNumerals[2018]="MMXIX";
allNumerals[2019]="MMXX";
allNumerals[2020]="MMXXI";
allNumerals[2021]="MMXXII";
allNumerals[2022]="MMXXIII";
allNumerals[2023]="MMXXIV";
allNumerals[2024]="MMXXV";
allNumerals[2025]="MMXXVI";
allNumerals[2026]="MMXXVII";
allNumerals[2027]="MMXXVIII";
allNumerals[2028]="MMXXIX";
allNumerals[2029]="MMXXX";
allNumerals[2030]="MMXXXI";
allNumerals[2031]="MMXXXII";
allNumerals[2032]="MMXXXIII";
allNumerals[2033]="MMXXXIV";
allNumerals[2034]="MMXXXV";
allNumerals[2035]="MMXXXVI";
allNumerals[2036]="MMXXXVII";
allNumerals[2037]="MMXXXVIII";
allNumerals[2038]="MMXXXIX";
allNumerals[2039]="MMXL";
allNumerals[2040]="MMXLI";
allNumerals[2041]="MMXLII";
allNumerals[2042]="MMXLIII";
allNumerals[2043]="MMXLIV";
allNumerals[2044]="MMXLV";
allNumerals[2045]="MMXLVI";
allNumerals[2046]="MMXLVII";
allNumerals[2047]="MMXLVIII";
allNumerals[2048]="MMXLIX";
allNumerals[2049]="MML";
allNumerals[2050]="MMLI";
allNumerals[2051]="MMLII";
allNumerals[2052]="MMLIII";
allNumerals[2053]="MMLIV";
allNumerals[2054]="MMLV";
allNumerals[2055]="MMLVI";
allNumerals[2056]="MMLVII";
allNumerals[2057]="MMLVIII";
allNumerals[2058]="MMLIX";
allNumerals[2059]="MMLX";
allNumerals[2060]="MMLXI";
allNumerals[2061]="MMLXII";
allNumerals[2062]="MMLXIII";
allNumerals[2063]="MMLXIV";
allNumerals[2064]="MMLXV";
allNumerals[2065]="MMLXVI";
allNumerals[2066]="MMLXVII";
allNumerals[2067]="MMLXVIII";
allNumerals[2068]="MMLXIX";
allNumerals[2069]="MMLXX";
allNumerals[2070]="MMLXXI";
allNumerals[2071]="MMLXXII";
allNumerals[2072]="MMLXXIII";
allNumerals[2073]="MMLXXIV";
allNumerals[2074]="MMLXXV";
allNumerals[2075]="MMLXXVI";
allNumerals[2076]="MMLXXVII";
allNumerals[2077]="MMLXXVIII";
allNumerals[2078]="MMLXXIX";
allNumerals[2079]="MMLXXX";
allNumerals[2080]="MMLXXXI";
allNumerals[2081]="MMLXXXII";
allNumerals[2082]="MMLXXXIII";
allNumerals[2083]="MMLXXXIV";
allNumerals[2084]="MMLXXXV";
allNumerals[2085]="MMLXXXVI";
allNumerals[2086]="MMLXXXVII";
allNumerals[2087]="MMLXXXVIII";
allNumerals[2088]="MMLXXXIX";
allNumerals[2089]="MMXC";
allNumerals[2090]="MMXCI";
allNumerals[2091]="MMXCII";
allNumerals[2092]="MMXCIII";
allNumerals[2093]="MMXCIV";
allNumerals[2094]="MMXCV";
allNumerals[2095]="MMXCVI";
allNumerals[2096]="MMXCVII";
allNumerals[2097]="MMXCVIII";
allNumerals[2098]="MMXCIX";
allNumerals[2099]="MMC";
allNumerals[2100]="MMCI";
allNumerals[2101]="MMCII";
allNumerals[2102]="MMCIII";
allNumerals[2103]="MMCIV";
allNumerals[2104]="MMCV";
allNumerals[2105]="MMCVI";
allNumerals[2106]="MMCVII";
allNumerals[2107]="MMCVIII";
allNumerals[2108]="MMCIX";
allNumerals[2109]="MMCX";
allNumerals[2110]="MMCXI";
allNumerals[2111]="MMCXII";
allNumerals[2112]="MMCXIII";
allNumerals[2113]="MMCXIV";
allNumerals[2114]="MMCXV";
allNumerals[2115]="MMCXVI";
allNumerals[2116]="MMCXVII";
allNumerals[2117]="MMCXVIII";
allNumerals[2118]="MMCXIX";
allNumerals[2119]="MMCXX";
allNumerals[2120]="MMCXXI";
allNumerals[2121]="MMCXXII";
allNumerals[2122]="MMCXXIII";
allNumerals[2123]="MMCXXIV";
allNumerals[2124]="MMCXXV";
allNumerals[2125]="MMCXXVI";
allNumerals[2126]="MMCXXVII";
allNumerals[2127]="MMCXXVIII";
allNumerals[2128]="MMCXXIX";
allNumerals[2129]="MMCXXX";
allNumerals[2130]="MMCXXXI";
allNumerals[2131]="MMCXXXII";
allNumerals[2132]="MMCXXXIII";
allNumerals[2133]="MMCXXXIV";
allNumerals[2134]="MMCXXXV";
allNumerals[2135]="MMCXXXVI";
allNumerals[2136]="MMCXXXVII";
allNumerals[2137]="MMCXXXVIII";
allNumerals[2138]="MMCXXXIX";
allNumerals[2139]="MMCXL";
allNumerals[2140]="MMCXLI";
allNumerals[2141]="MMCXLII";
allNumerals[2142]="MMCXLIII";
allNumerals[2143]="MMCXLIV";
allNumerals[2144]="MMCXLV";
allNumerals[2145]="MMCXLVI";
allNumerals[2146]="MMCXLVII";
allNumerals[2147]="MMCXLVIII";
allNumerals[2148]="MMCXLIX";
allNumerals[2149]="MMCL";
allNumerals[2150]="MMCLI";
allNumerals[2151]="MMCLII";
allNumerals[2152]="MMCLIII";
allNumerals[2153]="MMCLIV";
allNumerals[2154]="MMCLV";
allNumerals[2155]="MMCLVI";
allNumerals[2156]="MMCLVII";
allNumerals[2157]="MMCLVIII";
allNumerals[2158]="MMCLIX";
allNumerals[2159]="MMCLX";
allNumerals[2160]="MMCLXI";
allNumerals[2161]="MMCLXII";
allNumerals[2162]="MMCLXIII";
allNumerals[2163]="MMCLXIV";
allNumerals[2164]="MMCLXV";
allNumerals[2165]="MMCLXVI";
allNumerals[2166]="MMCLXVII";
allNumerals[2167]="MMCLXVIII";
allNumerals[2168]="MMCLXIX";
allNumerals[2169]="MMCLXX";
allNumerals[2170]="MMCLXXI";
allNumerals[2171]="MMCLXXII";
allNumerals[2172]="MMCLXXIII";
allNumerals[2173]="MMCLXXIV";
allNumerals[2174]="MMCLXXV";
allNumerals[2175]="MMCLXXVI";
allNumerals[2176]="MMCLXXVII";
allNumerals[2177]="MMCLXXVIII";
allNumerals[2178]="MMCLXXIX";
allNumerals[2179]="MMCLXXX";
allNumerals[2180]="MMCLXXXI";
allNumerals[2181]="MMCLXXXII";
allNumerals[2182]="MMCLXXXIII";
allNumerals[2183]="MMCLXXXIV";
allNumerals[2184]="MMCLXXXV";
allNumerals[2185]="MMCLXXXVI";
allNumerals[2186]="MMCLXXXVII";
allNumerals[2187]="MMCLXXXVIII";
allNumerals[2188]="MMCLXXXIX";
allNumerals[2189]="MMCXC";
allNumerals[2190]="MMCXCI";
allNumerals[2191]="MMCXCII";
allNumerals[2192]="MMCXCIII";
allNumerals[2193]="MMCXCIV";
allNumerals[2194]="MMCXCV";
allNumerals[2195]="MMCXCVI";
allNumerals[2196]="MMCXCVII";
allNumerals[2197]="MMCXCVIII";
allNumerals[2198]="MMCXCIX";
allNumerals[2199]="MMCC";
allNumerals[2200]="MMCCI";
allNumerals[2201]="MMCCII";
allNumerals[2202]="MMCCIII";
allNumerals[2203]="MMCCIV";
allNumerals[2204]="MMCCV";
allNumerals[2205]="MMCCVI";
allNumerals[2206]="MMCCVII";
allNumerals[2207]="MMCCVIII";
allNumerals[2208]="MMCCIX";
allNumerals[2209]="MMCCX";
allNumerals[2210]="MMCCXI";
allNumerals[2211]="MMCCXII";
allNumerals[2212]="MMCCXIII";
allNumerals[2213]="MMCCXIV";
allNumerals[2214]="MMCCXV";
allNumerals[2215]="MMCCXVI";
allNumerals[2216]="MMCCXVII";
allNumerals[2217]="MMCCXVIII";
allNumerals[2218]="MMCCXIX";
allNumerals[2219]="MMCCXX";
allNumerals[2220]="MMCCXXI";
allNumerals[2221]="MMCCXXII";
allNumerals[2222]="MMCCXXIII";
allNumerals[2223]="MMCCXXIV";
allNumerals[2224]="MMCCXXV";
allNumerals[2225]="MMCCXXVI";
allNumerals[2226]="MMCCXXVII";
allNumerals[2227]="MMCCXXVIII";
allNumerals[2228]="MMCCXXIX";
allNumerals[2229]="MMCCXXX";
allNumerals[2230]="MMCCXXXI";
allNumerals[2231]="MMCCXXXII";
allNumerals[2232]="MMCCXXXIII";
allNumerals[2233]="MMCCXXXIV";
allNumerals[2234]="MMCCXXXV";
allNumerals[2235]="MMCCXXXVI";
allNumerals[2236]="MMCCXXXVII";
allNumerals[2237]="MMCCXXXVIII";
allNumerals[2238]="MMCCXXXIX";
allNumerals[2239]="MMCCXL";
allNumerals[2240]="MMCCXLI";
allNumerals[2241]="MMCCXLII";
allNumerals[2242]="MMCCXLIII";
allNumerals[2243]="MMCCXLIV";
allNumerals[2244]="MMCCXLV";
allNumerals[2245]="MMCCXLVI";
allNumerals[2246]="MMCCXLVII";
allNumerals[2247]="MMCCXLVIII";
allNumerals[2248]="MMCCXLIX";
allNumerals[2249]="MMCCL";
allNumerals[2250]="MMCCLI";
allNumerals[2251]="MMCCLII";
allNumerals[2252]="MMCCLIII";
allNumerals[2253]="MMCCLIV";
allNumerals[2254]="MMCCLV";
allNumerals[2255]="MMCCLVI";
allNumerals[2256]="MMCCLVII";
allNumerals[2257]="MMCCLVIII";
allNumerals[2258]="MMCCLIX";
allNumerals[2259]="MMCCLX";
allNumerals[2260]="MMCCLXI";
allNumerals[2261]="MMCCLXII";
allNumerals[2262]="MMCCLXIII";
allNumerals[2263]="MMCCLXIV";
allNumerals[2264]="MMCCLXV";
allNumerals[2265]="MMCCLXVI";
allNumerals[2266]="MMCCLXVII";
allNumerals[2267]="MMCCLXVIII";
allNumerals[2268]="MMCCLXIX";
allNumerals[2269]="MMCCLXX";
allNumerals[2270]="MMCCLXXI";
allNumerals[2271]="MMCCLXXII";
allNumerals[2272]="MMCCLXXIII";
allNumerals[2273]="MMCCLXXIV";
allNumerals[2274]="MMCCLXXV";
allNumerals[2275]="MMCCLXXVI";
allNumerals[2276]="MMCCLXXVII";
allNumerals[2277]="MMCCLXXVIII";
allNumerals[2278]="MMCCLXXIX";
allNumerals[2279]="MMCCLXXX";
allNumerals[2280]="MMCCLXXXI";
allNumerals[2281]="MMCCLXXXII";
allNumerals[2282]="MMCCLXXXIII";
allNumerals[2283]="MMCCLXXXIV";
allNumerals[2284]="MMCCLXXXV";
allNumerals[2285]="MMCCLXXXVI";
allNumerals[2286]="MMCCLXXXVII";
allNumerals[2287]="MMCCLXXXVIII";
allNumerals[2288]="MMCCLXXXIX";
allNumerals[2289]="MMCCXC";
allNumerals[2290]="MMCCXCI";
allNumerals[2291]="MMCCXCII";
allNumerals[2292]="MMCCXCIII";
allNumerals[2293]="MMCCXCIV";
allNumerals[2294]="MMCCXCV";
allNumerals[2295]="MMCCXCVI";
allNumerals[2296]="MMCCXCVII";
allNumerals[2297]="MMCCXCVIII";
allNumerals[2298]="MMCCXCIX";
allNumerals[2299]="MMCCC";
allNumerals[2300]="MMCCCI";
allNumerals[2301]="MMCCCII";
allNumerals[2302]="MMCCCIII";
allNumerals[2303]="MMCCCIV";
allNumerals[2304]="MMCCCV";
allNumerals[2305]="MMCCCVI";
allNumerals[2306]="MMCCCVII";
allNumerals[2307]="MMCCCVIII";
allNumerals[2308]="MMCCCIX";
allNumerals[2309]="MMCCCX";
allNumerals[2310]="MMCCCXI";
allNumerals[2311]="MMCCCXII";
allNumerals[2312]="MMCCCXIII";
allNumerals[2313]="MMCCCXIV";
allNumerals[2314]="MMCCCXV";
allNumerals[2315]="MMCCCXVI";
allNumerals[2316]="MMCCCXVII";
allNumerals[2317]="MMCCCXVIII";
allNumerals[2318]="MMCCCXIX";
allNumerals[2319]="MMCCCXX";
allNumerals[2320]="MMCCCXXI";
allNumerals[2321]="MMCCCXXII";
allNumerals[2322]="MMCCCXXIII";
allNumerals[2323]="MMCCCXXIV";
allNumerals[2324]="MMCCCXXV";
allNumerals[2325]="MMCCCXXVI";
allNumerals[2326]="MMCCCXXVII";
allNumerals[2327]="MMCCCXXVIII";
allNumerals[2328]="MMCCCXXIX";
allNumerals[2329]="MMCCCXXX";
allNumerals[2330]="MMCCCXXXI";
allNumerals[2331]="MMCCCXXXII";
allNumerals[2332]="MMCCCXXXIII";
allNumerals[2333]="MMCCCXXXIV";
allNumerals[2334]="MMCCCXXXV";
allNumerals[2335]="MMCCCXXXVI";
allNumerals[2336]="MMCCCXXXVII";
allNumerals[2337]="MMCCCXXXVIII";
allNumerals[2338]="MMCCCXXXIX";
allNumerals[2339]="MMCCCXL";
allNumerals[2340]="MMCCCXLI";
allNumerals[2341]="MMCCCXLII";
allNumerals[2342]="MMCCCXLIII";
allNumerals[2343]="MMCCCXLIV";
allNumerals[2344]="MMCCCXLV";
allNumerals[2345]="MMCCCXLVI";
allNumerals[2346]="MMCCCXLVII";
allNumerals[2347]="MMCCCXLVIII";
allNumerals[2348]="MMCCCXLIX";
allNumerals[2349]="MMCCCL";
allNumerals[2350]="MMCCCLI";
allNumerals[2351]="MMCCCLII";
allNumerals[2352]="MMCCCLIII";
allNumerals[2353]="MMCCCLIV";
allNumerals[2354]="MMCCCLV";
allNumerals[2355]="MMCCCLVI";
allNumerals[2356]="MMCCCLVII";
allNumerals[2357]="MMCCCLVIII";
allNumerals[2358]="MMCCCLIX";
allNumerals[2359]="MMCCCLX";
allNumerals[2360]="MMCCCLXI";
allNumerals[2361]="MMCCCLXII";
allNumerals[2362]="MMCCCLXIII";
allNumerals[2363]="MMCCCLXIV";
allNumerals[2364]="MMCCCLXV";
allNumerals[2365]="MMCCCLXVI";
allNumerals[2366]="MMCCCLXVII";
allNumerals[2367]="MMCCCLXVIII";
allNumerals[2368]="MMCCCLXIX";
allNumerals[2369]="MMCCCLXX";
allNumerals[2370]="MMCCCLXXI";
allNumerals[2371]="MMCCCLXXII";
allNumerals[2372]="MMCCCLXXIII";
allNumerals[2373]="MMCCCLXXIV";
allNumerals[2374]="MMCCCLXXV";
allNumerals[2375]="MMCCCLXXVI";
allNumerals[2376]="MMCCCLXXVII";
allNumerals[2377]="MMCCCLXXVIII";
allNumerals[2378]="MMCCCLXXIX";
allNumerals[2379]="MMCCCLXXX";
allNumerals[2380]="MMCCCLXXXI";
allNumerals[2381]="MMCCCLXXXII";
allNumerals[2382]="MMCCCLXXXIII";
allNumerals[2383]="MMCCCLXXXIV";
allNumerals[2384]="MMCCCLXXXV";
allNumerals[2385]="MMCCCLXXXVI";
allNumerals[2386]="MMCCCLXXXVII";
allNumerals[2387]="MMCCCLXXXVIII";
allNumerals[2388]="MMCCCLXXXIX";
allNumerals[2389]="MMCCCXC";
allNumerals[2390]="MMCCCXCI";
allNumerals[2391]="MMCCCXCII";
allNumerals[2392]="MMCCCXCIII";
allNumerals[2393]="MMCCCXCIV";
allNumerals[2394]="MMCCCXCV";
allNumerals[2395]="MMCCCXCVI";
allNumerals[2396]="MMCCCXCVII";
allNumerals[2397]="MMCCCXCVIII";
allNumerals[2398]="MMCCCXCIX";
allNumerals[2399]="MMCD";
allNumerals[2400]="MMCDI";
allNumerals[2401]="MMCDII";
allNumerals[2402]="MMCDIII";
allNumerals[2403]="MMCDIV";
allNumerals[2404]="MMCDV";
allNumerals[2405]="MMCDVI";
allNumerals[2406]="MMCDVII";
allNumerals[2407]="MMCDVIII";
allNumerals[2408]="MMCDIX";
allNumerals[2409]="MMCDX";
allNumerals[2410]="MMCDXI";
allNumerals[2411]="MMCDXII";
allNumerals[2412]="MMCDXIII";
allNumerals[2413]="MMCDXIV";
allNumerals[2414]="MMCDXV";
allNumerals[2415]="MMCDXVI";
allNumerals[2416]="MMCDXVII";
allNumerals[2417]="MMCDXVIII";
allNumerals[2418]="MMCDXIX";
allNumerals[2419]="MMCDXX";
allNumerals[2420]="MMCDXXI";
allNumerals[2421]="MMCDXXII";
allNumerals[2422]="MMCDXXIII";
allNumerals[2423]="MMCDXXIV";
allNumerals[2424]="MMCDXXV";
allNumerals[2425]="MMCDXXVI";
allNumerals[2426]="MMCDXXVII";
allNumerals[2427]="MMCDXXVIII";
allNumerals[2428]="MMCDXXIX";
allNumerals[2429]="MMCDXXX";
allNumerals[2430]="MMCDXXXI";
allNumerals[2431]="MMCDXXXII";
allNumerals[2432]="MMCDXXXIII";
allNumerals[2433]="MMCDXXXIV";
allNumerals[2434]="MMCDXXXV";
allNumerals[2435]="MMCDXXXVI";
allNumerals[2436]="MMCDXXXVII";
allNumerals[2437]="MMCDXXXVIII";
allNumerals[2438]="MMCDXXXIX";
allNumerals[2439]="MMCDXL";
allNumerals[2440]="MMCDXLI";
allNumerals[2441]="MMCDXLII";
allNumerals[2442]="MMCDXLIII";
allNumerals[2443]="MMCDXLIV";
allNumerals[2444]="MMCDXLV";
allNumerals[2445]="MMCDXLVI";
allNumerals[2446]="MMCDXLVII";
allNumerals[2447]="MMCDXLVIII";
allNumerals[2448]="MMCDXLIX";
allNumerals[2449]="MMCDL";
allNumerals[2450]="MMCDLI";
allNumerals[2451]="MMCDLII";
allNumerals[2452]="MMCDLIII";
allNumerals[2453]="MMCDLIV";
allNumerals[2454]="MMCDLV";
allNumerals[2455]="MMCDLVI";
allNumerals[2456]="MMCDLVII";
allNumerals[2457]="MMCDLVIII";
allNumerals[2458]="MMCDLIX";
allNumerals[2459]="MMCDLX";
allNumerals[2460]="MMCDLXI";
allNumerals[2461]="MMCDLXII";
allNumerals[2462]="MMCDLXIII";
allNumerals[2463]="MMCDLXIV";
allNumerals[2464]="MMCDLXV";
allNumerals[2465]="MMCDLXVI";
allNumerals[2466]="MMCDLXVII";
allNumerals[2467]="MMCDLXVIII";
allNumerals[2468]="MMCDLXIX";
allNumerals[2469]="MMCDLXX";
allNumerals[2470]="MMCDLXXI";
allNumerals[2471]="MMCDLXXII";
allNumerals[2472]="MMCDLXXIII";
allNumerals[2473]="MMCDLXXIV";
allNumerals[2474]="MMCDLXXV";
allNumerals[2475]="MMCDLXXVI";
allNumerals[2476]="MMCDLXXVII";
allNumerals[2477]="MMCDLXXVIII";
allNumerals[2478]="MMCDLXXIX";
allNumerals[2479]="MMCDLXXX";
allNumerals[2480]="MMCDLXXXI";
allNumerals[2481]="MMCDLXXXII";
allNumerals[2482]="MMCDLXXXIII";
allNumerals[2483]="MMCDLXXXIV";
allNumerals[2484]="MMCDLXXXV";
allNumerals[2485]="MMCDLXXXVI";
allNumerals[2486]="MMCDLXXXVII";
allNumerals[2487]="MMCDLXXXVIII";
allNumerals[2488]="MMCDLXXXIX";
allNumerals[2489]="MMCDXC";
allNumerals[2490]="MMCDXCI";
allNumerals[2491]="MMCDXCII";
allNumerals[2492]="MMCDXCIII";
allNumerals[2493]="MMCDXCIV";
allNumerals[2494]="MMCDXCV";
allNumerals[2495]="MMCDXCVI";
allNumerals[2496]="MMCDXCVII";
allNumerals[2497]="MMCDXCVIII";
allNumerals[2498]="MMCDXCIX";
allNumerals[2499]="MMD";
allNumerals[2500]="MMDI";
allNumerals[2501]="MMDII";
allNumerals[2502]="MMDIII";
allNumerals[2503]="MMDIV";
allNumerals[2504]="MMDV";
allNumerals[2505]="MMDVI";
allNumerals[2506]="MMDVII";
allNumerals[2507]="MMDVIII";
allNumerals[2508]="MMDIX";
allNumerals[2509]="MMDX";
allNumerals[2510]="MMDXI";
allNumerals[2511]="MMDXII";
allNumerals[2512]="MMDXIII";
allNumerals[2513]="MMDXIV";
allNumerals[2514]="MMDXV";
allNumerals[2515]="MMDXVI";
allNumerals[2516]="MMDXVII";
allNumerals[2517]="MMDXVIII";
allNumerals[2518]="MMDXIX";
allNumerals[2519]="MMDXX";
allNumerals[2520]="MMDXXI";
allNumerals[2521]="MMDXXII";
allNumerals[2522]="MMDXXIII";
allNumerals[2523]="MMDXXIV";
allNumerals[2524]="MMDXXV";
allNumerals[2525]="MMDXXVI";
allNumerals[2526]="MMDXXVII";
allNumerals[2527]="MMDXXVIII";
allNumerals[2528]="MMDXXIX";
allNumerals[2529]="MMDXXX";
allNumerals[2530]="MMDXXXI";
allNumerals[2531]="MMDXXXII";
allNumerals[2532]="MMDXXXIII";
allNumerals[2533]="MMDXXXIV";
allNumerals[2534]="MMDXXXV";
allNumerals[2535]="MMDXXXVI";
allNumerals[2536]="MMDXXXVII";
allNumerals[2537]="MMDXXXVIII";
allNumerals[2538]="MMDXXXIX";
allNumerals[2539]="MMDXL";
allNumerals[2540]="MMDXLI";
allNumerals[2541]="MMDXLII";
allNumerals[2542]="MMDXLIII";
allNumerals[2543]="MMDXLIV";
allNumerals[2544]="MMDXLV";
allNumerals[2545]="MMDXLVI";
allNumerals[2546]="MMDXLVII";
allNumerals[2547]="MMDXLVIII";
allNumerals[2548]="MMDXLIX";
allNumerals[2549]="MMDL";
allNumerals[2550]="MMDLI";
allNumerals[2551]="MMDLII";
allNumerals[2552]="MMDLIII";
allNumerals[2553]="MMDLIV";
allNumerals[2554]="MMDLV";
allNumerals[2555]="MMDLVI";
allNumerals[2556]="MMDLVII";
allNumerals[2557]="MMDLVIII";
allNumerals[2558]="MMDLIX";
allNumerals[2559]="MMDLX";
allNumerals[2560]="MMDLXI";
allNumerals[2561]="MMDLXII";
allNumerals[2562]="MMDLXIII";
allNumerals[2563]="MMDLXIV";
allNumerals[2564]="MMDLXV";
allNumerals[2565]="MMDLXVI";
allNumerals[2566]="MMDLXVII";
allNumerals[2567]="MMDLXVIII";
allNumerals[2568]="MMDLXIX";
allNumerals[2569]="MMDLXX";
allNumerals[2570]="MMDLXXI";
allNumerals[2571]="MMDLXXII";
allNumerals[2572]="MMDLXXIII";
allNumerals[2573]="MMDLXXIV";
allNumerals[2574]="MMDLXXV";
allNumerals[2575]="MMDLXXVI";
allNumerals[2576]="MMDLXXVII";
allNumerals[2577]="MMDLXXVIII";
allNumerals[2578]="MMDLXXIX";
allNumerals[2579]="MMDLXXX";
allNumerals[2580]="MMDLXXXI";
allNumerals[2581]="MMDLXXXII";
allNumerals[2582]="MMDLXXXIII";
allNumerals[2583]="MMDLXXXIV";
allNumerals[2584]="MMDLXXXV";
allNumerals[2585]="MMDLXXXVI";
allNumerals[2586]="MMDLXXXVII";
allNumerals[2587]="MMDLXXXVIII";
allNumerals[2588]="MMDLXXXIX";
allNumerals[2589]="MMDXC";
allNumerals[2590]="MMDXCI";
allNumerals[2591]="MMDXCII";
allNumerals[2592]="MMDXCIII";
allNumerals[2593]="MMDXCIV";
allNumerals[2594]="MMDXCV";
allNumerals[2595]="MMDXCVI";
allNumerals[2596]="MMDXCVII";
allNumerals[2597]="MMDXCVIII";
allNumerals[2598]="MMDXCIX";
allNumerals[2599]="MMDC";
allNumerals[2600]="MMDCI";
allNumerals[2601]="MMDCII";
allNumerals[2602]="MMDCIII";
allNumerals[2603]="MMDCIV";
allNumerals[2604]="MMDCV";
allNumerals[2605]="MMDCVI";
allNumerals[2606]="MMDCVII";
allNumerals[2607]="MMDCVIII";
allNumerals[2608]="MMDCIX";
allNumerals[2609]="MMDCX";
allNumerals[2610]="MMDCXI";
allNumerals[2611]="MMDCXII";
allNumerals[2612]="MMDCXIII";
allNumerals[2613]="MMDCXIV";
allNumerals[2614]="MMDCXV";
allNumerals[2615]="MMDCXVI";
allNumerals[2616]="MMDCXVII";
allNumerals[2617]="MMDCXVIII";
allNumerals[2618]="MMDCXIX";
allNumerals[2619]="MMDCXX";
allNumerals[2620]="MMDCXXI";
allNumerals[2621]="MMDCXXII";
allNumerals[2622]="MMDCXXIII";
allNumerals[2623]="MMDCXXIV";
allNumerals[2624]="MMDCXXV";
allNumerals[2625]="MMDCXXVI";
allNumerals[2626]="MMDCXXVII";
allNumerals[2627]="MMDCXXVIII";
allNumerals[2628]="MMDCXXIX";
allNumerals[2629]="MMDCXXX";
allNumerals[2630]="MMDCXXXI";
allNumerals[2631]="MMDCXXXII";
allNumerals[2632]="MMDCXXXIII";
allNumerals[2633]="MMDCXXXIV";
allNumerals[2634]="MMDCXXXV";
allNumerals[2635]="MMDCXXXVI";
allNumerals[2636]="MMDCXXXVII";
allNumerals[2637]="MMDCXXXVIII";
allNumerals[2638]="MMDCXXXIX";
allNumerals[2639]="MMDCXL";
allNumerals[2640]="MMDCXLI";
allNumerals[2641]="MMDCXLII";
allNumerals[2642]="MMDCXLIII";
allNumerals[2643]="MMDCXLIV";
allNumerals[2644]="MMDCXLV";
allNumerals[2645]="MMDCXLVI";
allNumerals[2646]="MMDCXLVII";
allNumerals[2647]="MMDCXLVIII";
allNumerals[2648]="MMDCXLIX";
allNumerals[2649]="MMDCL";
allNumerals[2650]="MMDCLI";
allNumerals[2651]="MMDCLII";
allNumerals[2652]="MMDCLIII";
allNumerals[2653]="MMDCLIV";
allNumerals[2654]="MMDCLV";
allNumerals[2655]="MMDCLVI";
allNumerals[2656]="MMDCLVII";
allNumerals[2657]="MMDCLVIII";
allNumerals[2658]="MMDCLIX";
allNumerals[2659]="MMDCLX";
allNumerals[2660]="MMDCLXI";
allNumerals[2661]="MMDCLXII";
allNumerals[2662]="MMDCLXIII";
allNumerals[2663]="MMDCLXIV";
allNumerals[2664]="MMDCLXV";
allNumerals[2665]="MMDCLXVI";
allNumerals[2666]="MMDCLXVII";
allNumerals[2667]="MMDCLXVIII";
allNumerals[2668]="MMDCLXIX";
allNumerals[2669]="MMDCLXX";
allNumerals[2670]="MMDCLXXI";
allNumerals[2671]="MMDCLXXII";
allNumerals[2672]="MMDCLXXIII";
allNumerals[2673]="MMDCLXXIV";
allNumerals[2674]="MMDCLXXV";
allNumerals[2675]="MMDCLXXVI";
allNumerals[2676]="MMDCLXXVII";
allNumerals[2677]="MMDCLXXVIII";
allNumerals[2678]="MMDCLXXIX";
allNumerals[2679]="MMDCLXXX";
allNumerals[2680]="MMDCLXXXI";
allNumerals[2681]="MMDCLXXXII";
allNumerals[2682]="MMDCLXXXIII";
allNumerals[2683]="MMDCLXXXIV";
allNumerals[2684]="MMDCLXXXV";
allNumerals[2685]="MMDCLXXXVI";
allNumerals[2686]="MMDCLXXXVII";
allNumerals[2687]="MMDCLXXXVIII";
allNumerals[2688]="MMDCLXXXIX";
allNumerals[2689]="MMDCXC";
allNumerals[2690]="MMDCXCI";
allNumerals[2691]="MMDCXCII";
allNumerals[2692]="MMDCXCIII";
allNumerals[2693]="MMDCXCIV";
allNumerals[2694]="MMDCXCV";
allNumerals[2695]="MMDCXCVI";
allNumerals[2696]="MMDCXCVII";
allNumerals[2697]="MMDCXCVIII";
allNumerals[2698]="MMDCXCIX";
allNumerals[2699]="MMDCC";
allNumerals[2700]="MMDCCI";
allNumerals[2701]="MMDCCII";
allNumerals[2702]="MMDCCIII";
allNumerals[2703]="MMDCCIV";
allNumerals[2704]="MMDCCV";
allNumerals[2705]="MMDCCVI";
allNumerals[2706]="MMDCCVII";
allNumerals[2707]="MMDCCVIII";
allNumerals[2708]="MMDCCIX";
allNumerals[2709]="MMDCCX";
allNumerals[2710]="MMDCCXI";
allNumerals[2711]="MMDCCXII";
allNumerals[2712]="MMDCCXIII";
allNumerals[2713]="MMDCCXIV";
allNumerals[2714]="MMDCCXV";
allNumerals[2715]="MMDCCXVI";
allNumerals[2716]="MMDCCXVII";
allNumerals[2717]="MMDCCXVIII";
allNumerals[2718]="MMDCCXIX";
allNumerals[2719]="MMDCCXX";
allNumerals[2720]="MMDCCXXI";
allNumerals[2721]="MMDCCXXII";
allNumerals[2722]="MMDCCXXIII";
allNumerals[2723]="MMDCCXXIV";
allNumerals[2724]="MMDCCXXV";
allNumerals[2725]="MMDCCXXVI";
allNumerals[2726]="MMDCCXXVII";
allNumerals[2727]="MMDCCXXVIII";
allNumerals[2728]="MMDCCXXIX";
allNumerals[2729]="MMDCCXXX";
allNumerals[2730]="MMDCCXXXI";
allNumerals[2731]="MMDCCXXXII";
allNumerals[2732]="MMDCCXXXIII";
allNumerals[2733]="MMDCCXXXIV";
allNumerals[2734]="MMDCCXXXV";
allNumerals[2735]="MMDCCXXXVI";
allNumerals[2736]="MMDCCXXXVII";
allNumerals[2737]="MMDCCXXXVIII";
allNumerals[2738]="MMDCCXXXIX";
allNumerals[2739]="MMDCCXL";
allNumerals[2740]="MMDCCXLI";
allNumerals[2741]="MMDCCXLII";
allNumerals[2742]="MMDCCXLIII";
allNumerals[2743]="MMDCCXLIV";
allNumerals[2744]="MMDCCXLV";
allNumerals[2745]="MMDCCXLVI";
allNumerals[2746]="MMDCCXLVII";
allNumerals[2747]="MMDCCXLVIII";
allNumerals[2748]="MMDCCXLIX";
allNumerals[2749]="MMDCCL";
allNumerals[2750]="MMDCCLI";
allNumerals[2751]="MMDCCLII";
allNumerals[2752]="MMDCCLIII";
allNumerals[2753]="MMDCCLIV";
allNumerals[2754]="MMDCCLV";
allNumerals[2755]="MMDCCLVI";
allNumerals[2756]="MMDCCLVII";
allNumerals[2757]="MMDCCLVIII";
allNumerals[2758]="MMDCCLIX";
allNumerals[2759]="MMDCCLX";
allNumerals[2760]="MMDCCLXI";
allNumerals[2761]="MMDCCLXII";
allNumerals[2762]="MMDCCLXIII";
allNumerals[2763]="MMDCCLXIV";
allNumerals[2764]="MMDCCLXV";
allNumerals[2765]="MMDCCLXVI";
allNumerals[2766]="MMDCCLXVII";
allNumerals[2767]="MMDCCLXVIII";
allNumerals[2768]="MMDCCLXIX";
allNumerals[2769]="MMDCCLXX";
allNumerals[2770]="MMDCCLXXI";
allNumerals[2771]="MMDCCLXXII";
allNumerals[2772]="MMDCCLXXIII";
allNumerals[2773]="MMDCCLXXIV";
allNumerals[2774]="MMDCCLXXV";
allNumerals[2775]="MMDCCLXXVI";
allNumerals[2776]="MMDCCLXXVII";
allNumerals[2777]="MMDCCLXXVIII";
allNumerals[2778]="MMDCCLXXIX";
allNumerals[2779]="MMDCCLXXX";
allNumerals[2780]="MMDCCLXXXI";
allNumerals[2781]="MMDCCLXXXII";
allNumerals[2782]="MMDCCLXXXIII";
allNumerals[2783]="MMDCCLXXXIV";
allNumerals[2784]="MMDCCLXXXV";
allNumerals[2785]="MMDCCLXXXVI";
allNumerals[2786]="MMDCCLXXXVII";
allNumerals[2787]="MMDCCLXXXVIII";
allNumerals[2788]="MMDCCLXXXIX";
allNumerals[2789]="MMDCCXC";
allNumerals[2790]="MMDCCXCI";
allNumerals[2791]="MMDCCXCII";
allNumerals[2792]="MMDCCXCIII";
allNumerals[2793]="MMDCCXCIV";
allNumerals[2794]="MMDCCXCV";
allNumerals[2795]="MMDCCXCVI";
allNumerals[2796]="MMDCCXCVII";
allNumerals[2797]="MMDCCXCVIII";
allNumerals[2798]="MMDCCXCIX";
allNumerals[2799]="MMDCCC";
allNumerals[2800]="MMDCCCI";
allNumerals[2801]="MMDCCCII";
allNumerals[2802]="MMDCCCIII";
allNumerals[2803]="MMDCCCIV";
allNumerals[2804]="MMDCCCV";
allNumerals[2805]="MMDCCCVI";
allNumerals[2806]="MMDCCCVII";
allNumerals[2807]="MMDCCCVIII";
allNumerals[2808]="MMDCCCIX";
allNumerals[2809]="MMDCCCX";
allNumerals[2810]="MMDCCCXI";
allNumerals[2811]="MMDCCCXII";
allNumerals[2812]="MMDCCCXIII";
allNumerals[2813]="MMDCCCXIV";
allNumerals[2814]="MMDCCCXV";
allNumerals[2815]="MMDCCCXVI";
allNumerals[2816]="MMDCCCXVII";
allNumerals[2817]="MMDCCCXVIII";
allNumerals[2818]="MMDCCCXIX";
allNumerals[2819]="MMDCCCXX";
allNumerals[2820]="MMDCCCXXI";
allNumerals[2821]="MMDCCCXXII";
allNumerals[2822]="MMDCCCXXIII";
allNumerals[2823]="MMDCCCXXIV";
allNumerals[2824]="MMDCCCXXV";
allNumerals[2825]="MMDCCCXXVI";
allNumerals[2826]="MMDCCCXXVII";
allNumerals[2827]="MMDCCCXXVIII";
allNumerals[2828]="MMDCCCXXIX";
allNumerals[2829]="MMDCCCXXX";
allNumerals[2830]="MMDCCCXXXI";
allNumerals[2831]="MMDCCCXXXII";
allNumerals[2832]="MMDCCCXXXIII";
allNumerals[2833]="MMDCCCXXXIV";
allNumerals[2834]="MMDCCCXXXV";
allNumerals[2835]="MMDCCCXXXVI";
allNumerals[2836]="MMDCCCXXXVII";
allNumerals[2837]="MMDCCCXXXVIII";
allNumerals[2838]="MMDCCCXXXIX";
allNumerals[2839]="MMDCCCXL";
allNumerals[2840]="MMDCCCXLI";
allNumerals[2841]="MMDCCCXLII";
allNumerals[2842]="MMDCCCXLIII";
allNumerals[2843]="MMDCCCXLIV";
allNumerals[2844]="MMDCCCXLV";
allNumerals[2845]="MMDCCCXLVI";
allNumerals[2846]="MMDCCCXLVII";
allNumerals[2847]="MMDCCCXLVIII";
allNumerals[2848]="MMDCCCXLIX";
allNumerals[2849]="MMDCCCL";
allNumerals[2850]="MMDCCCLI";
allNumerals[2851]="MMDCCCLII";
allNumerals[2852]="MMDCCCLIII";
allNumerals[2853]="MMDCCCLIV";
allNumerals[2854]="MMDCCCLV";
allNumerals[2855]="MMDCCCLVI";
allNumerals[2856]="MMDCCCLVII";
allNumerals[2857]="MMDCCCLVIII";
allNumerals[2858]="MMDCCCLIX";
allNumerals[2859]="MMDCCCLX";
allNumerals[2860]="MMDCCCLXI";
allNumerals[2861]="MMDCCCLXII";
allNumerals[2862]="MMDCCCLXIII";
allNumerals[2863]="MMDCCCLXIV";
allNumerals[2864]="MMDCCCLXV";
allNumerals[2865]="MMDCCCLXVI";
allNumerals[2866]="MMDCCCLXVII";
allNumerals[2867]="MMDCCCLXVIII";
allNumerals[2868]="MMDCCCLXIX";
allNumerals[2869]="MMDCCCLXX";
allNumerals[2870]="MMDCCCLXXI";
allNumerals[2871]="MMDCCCLXXII";
allNumerals[2872]="MMDCCCLXXIII";
allNumerals[2873]="MMDCCCLXXIV";
allNumerals[2874]="MMDCCCLXXV";
allNumerals[2875]="MMDCCCLXXVI";
allNumerals[2876]="MMDCCCLXXVII";
allNumerals[2877]="MMDCCCLXXVIII";
allNumerals[2878]="MMDCCCLXXIX";
allNumerals[2879]="MMDCCCLXXX";
allNumerals[2880]="MMDCCCLXXXI";
allNumerals[2881]="MMDCCCLXXXII";
allNumerals[2882]="MMDCCCLXXXIII";
allNumerals[2883]="MMDCCCLXXXIV";
allNumerals[2884]="MMDCCCLXXXV";
allNumerals[2885]="MMDCCCLXXXVI";
allNumerals[2886]="MMDCCCLXXXVII";
allNumerals[2887]="MMDCCCLXXXVIII";
allNumerals[2888]="MMDCCCLXXXIX";
allNumerals[2889]="MMDCCCXC";
allNumerals[2890]="MMDCCCXCI";
allNumerals[2891]="MMDCCCXCII";
allNumerals[2892]="MMDCCCXCIII";
allNumerals[2893]="MMDCCCXCIV";
allNumerals[2894]="MMDCCCXCV";
allNumerals[2895]="MMDCCCXCVI";
allNumerals[2896]="MMDCCCXCVII";
allNumerals[2897]="MMDCCCXCVIII";
allNumerals[2898]="MMDCCCXCIX";
allNumerals[2899]="MMCM";
allNumerals[2900]="MMCMI";
allNumerals[2901]="MMCMII";
allNumerals[2902]="MMCMIII";
allNumerals[2903]="MMCMIV";
allNumerals[2904]="MMCMV";
allNumerals[2905]="MMCMVI";
allNumerals[2906]="MMCMVII";
allNumerals[2907]="MMCMVIII";
allNumerals[2908]="MMCMIX";
allNumerals[2909]="MMCMX";
allNumerals[2910]="MMCMXI";
allNumerals[2911]="MMCMXII";
allNumerals[2912]="MMCMXIII";
allNumerals[2913]="MMCMXIV";
allNumerals[2914]="MMCMXV";
allNumerals[2915]="MMCMXVI";
allNumerals[2916]="MMCMXVII";
allNumerals[2917]="MMCMXVIII";
allNumerals[2918]="MMCMXIX";
allNumerals[2919]="MMCMXX";
allNumerals[2920]="MMCMXXI";
allNumerals[2921]="MMCMXXII";
allNumerals[2922]="MMCMXXIII";
allNumerals[2923]="MMCMXXIV";
allNumerals[2924]="MMCMXXV";
allNumerals[2925]="MMCMXXVI";
allNumerals[2926]="MMCMXXVII";
allNumerals[2927]="MMCMXXVIII";
allNumerals[2928]="MMCMXXIX";
allNumerals[2929]="MMCMXXX";
allNumerals[2930]="MMCMXXXI";
allNumerals[2931]="MMCMXXXII";
allNumerals[2932]="MMCMXXXIII";
allNumerals[2933]="MMCMXXXIV";
allNumerals[2934]="MMCMXXXV";
allNumerals[2935]="MMCMXXXVI";
allNumerals[2936]="MMCMXXXVII";
allNumerals[2937]="MMCMXXXVIII";
allNumerals[2938]="MMCMXXXIX";
allNumerals[2939]="MMCMXL";
allNumerals[2940]="MMCMXLI";
allNumerals[2941]="MMCMXLII";
allNumerals[2942]="MMCMXLIII";
allNumerals[2943]="MMCMXLIV";
allNumerals[2944]="MMCMXLV";
allNumerals[2945]="MMCMXLVI";
allNumerals[2946]="MMCMXLVII";
allNumerals[2947]="MMCMXLVIII";
allNumerals[2948]="MMCMXLIX";
allNumerals[2949]="MMCML";
allNumerals[2950]="MMCMLI";
allNumerals[2951]="MMCMLII";
allNumerals[2952]="MMCMLIII";
allNumerals[2953]="MMCMLIV";
allNumerals[2954]="MMCMLV";
allNumerals[2955]="MMCMLVI";
allNumerals[2956]="MMCMLVII";
allNumerals[2957]="MMCMLVIII";
allNumerals[2958]="MMCMLIX";
allNumerals[2959]="MMCMLX";
allNumerals[2960]="MMCMLXI";
allNumerals[2961]="MMCMLXII";
allNumerals[2962]="MMCMLXIII";
allNumerals[2963]="MMCMLXIV";
allNumerals[2964]="MMCMLXV";
allNumerals[2965]="MMCMLXVI";
allNumerals[2966]="MMCMLXVII";
allNumerals[2967]="MMCMLXVIII";
allNumerals[2968]="MMCMLXIX";
allNumerals[2969]="MMCMLXX";
allNumerals[2970]="MMCMLXXI";
allNumerals[2971]="MMCMLXXII";
allNumerals[2972]="MMCMLXXIII";
allNumerals[2973]="MMCMLXXIV";
allNumerals[2974]="MMCMLXXV";
allNumerals[2975]="MMCMLXXVI";
allNumerals[2976]="MMCMLXXVII";
allNumerals[2977]="MMCMLXXVIII";
allNumerals[2978]="MMCMLXXIX";
allNumerals[2979]="MMCMLXXX";
allNumerals[2980]="MMCMLXXXI";
allNumerals[2981]="MMCMLXXXII";
allNumerals[2982]="MMCMLXXXIII";
allNumerals[2983]="MMCMLXXXIV";
allNumerals[2984]="MMCMLXXXV";
allNumerals[2985]="MMCMLXXXVI";
allNumerals[2986]="MMCMLXXXVII";
allNumerals[2987]="MMCMLXXXVIII";
allNumerals[2988]="MMCMLXXXIX";
allNumerals[2989]="MMCMXC";
allNumerals[2990]="MMCMXCI";
allNumerals[2991]="MMCMXCII";
allNumerals[2992]="MMCMXCIII";
allNumerals[2993]="MMCMXCIV";
allNumerals[2994]="MMCMXCV";
allNumerals[2995]="MMCMXCVI";
allNumerals[2996]="MMCMXCVII";
allNumerals[2997]="MMCMXCVIII";
allNumerals[2998]="MMCMXCIX";
allNumerals[2999]="MMM";
allNumerals[3000]="MMMI";
allNumerals[3001]="MMMII";
allNumerals[3002]="MMMIII";
allNumerals[3003]="MMMIV";
allNumerals[3004]="MMMV";
allNumerals[3005]="MMMVI";
allNumerals[3006]="MMMVII";
allNumerals[3007]="MMMVIII";
allNumerals[3008]="MMMIX";
allNumerals[3009]="MMMX";
allNumerals[3010]="MMMXI";
allNumerals[3011]="MMMXII";
allNumerals[3012]="MMMXIII";
allNumerals[3013]="MMMXIV";
allNumerals[3014]="MMMXV";
allNumerals[3015]="MMMXVI";
allNumerals[3016]="MMMXVII";
allNumerals[3017]="MMMXVIII";
allNumerals[3018]="MMMXIX";
allNumerals[3019]="MMMXX";
allNumerals[3020]="MMMXXI";
allNumerals[3021]="MMMXXII";
allNumerals[3022]="MMMXXIII";
allNumerals[3023]="MMMXXIV";
allNumerals[3024]="MMMXXV";
allNumerals[3025]="MMMXXVI";
allNumerals[3026]="MMMXXVII";
allNumerals[3027]="MMMXXVIII";
allNumerals[3028]="MMMXXIX";
allNumerals[3029]="MMMXXX";
allNumerals[3030]="MMMXXXI";
allNumerals[3031]="MMMXXXII";
allNumerals[3032]="MMMXXXIII";
allNumerals[3033]="MMMXXXIV";
allNumerals[3034]="MMMXXXV";
allNumerals[3035]="MMMXXXVI";
allNumerals[3036]="MMMXXXVII";
allNumerals[3037]="MMMXXXVIII";
allNumerals[3038]="MMMXXXIX";
allNumerals[3039]="MMMXL";
allNumerals[3040]="MMMXLI";
allNumerals[3041]="MMMXLII";
allNumerals[3042]="MMMXLIII";
allNumerals[3043]="MMMXLIV";
allNumerals[3044]="MMMXLV";
allNumerals[3045]="MMMXLVI";
allNumerals[3046]="MMMXLVII";
allNumerals[3047]="MMMXLVIII";
allNumerals[3048]="MMMXLIX";
allNumerals[3049]="MMML";
allNumerals[3050]="MMMLI";
allNumerals[3051]="MMMLII";
allNumerals[3052]="MMMLIII";
allNumerals[3053]="MMMLIV";
allNumerals[3054]="MMMLV";
allNumerals[3055]="MMMLVI";
allNumerals[3056]="MMMLVII";
allNumerals[3057]="MMMLVIII";
allNumerals[3058]="MMMLIX";
allNumerals[3059]="MMMLX";
allNumerals[3060]="MMMLXI";
allNumerals[3061]="MMMLXII";
allNumerals[3062]="MMMLXIII";
allNumerals[3063]="MMMLXIV";
allNumerals[3064]="MMMLXV";
allNumerals[3065]="MMMLXVI";
allNumerals[3066]="MMMLXVII";
allNumerals[3067]="MMMLXVIII";
allNumerals[3068]="MMMLXIX";
allNumerals[3069]="MMMLXX";
allNumerals[3070]="MMMLXXI";
allNumerals[3071]="MMMLXXII";
allNumerals[3072]="MMMLXXIII";
allNumerals[3073]="MMMLXXIV";
allNumerals[3074]="MMMLXXV";
allNumerals[3075]="MMMLXXVI";
allNumerals[3076]="MMMLXXVII";
allNumerals[3077]="MMMLXXVIII";
allNumerals[3078]="MMMLXXIX";
allNumerals[3079]="MMMLXXX";
allNumerals[3080]="MMMLXXXI";
allNumerals[3081]="MMMLXXXII";
allNumerals[3082]="MMMLXXXIII";
allNumerals[3083]="MMMLXXXIV";
allNumerals[3084]="MMMLXXXV";
allNumerals[3085]="MMMLXXXVI";
allNumerals[3086]="MMMLXXXVII";
allNumerals[3087]="MMMLXXXVIII";
allNumerals[3088]="MMMLXXXIX";
allNumerals[3089]="MMMXC";
allNumerals[3090]="MMMXCI";
allNumerals[3091]="MMMXCII";
allNumerals[3092]="MMMXCIII";
allNumerals[3093]="MMMXCIV";
allNumerals[3094]="MMMXCV";
allNumerals[3095]="MMMXCVI";
allNumerals[3096]="MMMXCVII";
allNumerals[3097]="MMMXCVIII";
allNumerals[3098]="MMMXCIX";
allNumerals[3099]="MMMC";
allNumerals[3100]="MMMCI";
allNumerals[3101]="MMMCII";
allNumerals[3102]="MMMCIII";
allNumerals[3103]="MMMCIV";
allNumerals[3104]="MMMCV";
allNumerals[3105]="MMMCVI";
allNumerals[3106]="MMMCVII";
allNumerals[3107]="MMMCVIII";
allNumerals[3108]="MMMCIX";
allNumerals[3109]="MMMCX";
allNumerals[3110]="MMMCXI";
allNumerals[3111]="MMMCXII";
allNumerals[3112]="MMMCXIII";
allNumerals[3113]="MMMCXIV";
allNumerals[3114]="MMMCXV";
allNumerals[3115]="MMMCXVI";
allNumerals[3116]="MMMCXVII";
allNumerals[3117]="MMMCXVIII";
allNumerals[3118]="MMMCXIX";
allNumerals[3119]="MMMCXX";
allNumerals[3120]="MMMCXXI";
allNumerals[3121]="MMMCXXII";
allNumerals[3122]="MMMCXXIII";
allNumerals[3123]="MMMCXXIV";
allNumerals[3124]="MMMCXXV";
allNumerals[3125]="MMMCXXVI";
allNumerals[3126]="MMMCXXVII";
allNumerals[3127]="MMMCXXVIII";
allNumerals[3128]="MMMCXXIX";
allNumerals[3129]="MMMCXXX";
allNumerals[3130]="MMMCXXXI";
allNumerals[3131]="MMMCXXXII";
allNumerals[3132]="MMMCXXXIII";
allNumerals[3133]="MMMCXXXIV";
allNumerals[3134]="MMMCXXXV";
allNumerals[3135]="MMMCXXXVI";
allNumerals[3136]="MMMCXXXVII";
allNumerals[3137]="MMMCXXXVIII";
allNumerals[3138]="MMMCXXXIX";
allNumerals[3139]="MMMCXL";
allNumerals[3140]="MMMCXLI";
allNumerals[3141]="MMMCXLII";
allNumerals[3142]="MMMCXLIII";
allNumerals[3143]="MMMCXLIV";
allNumerals[3144]="MMMCXLV";
allNumerals[3145]="MMMCXLVI";
allNumerals[3146]="MMMCXLVII";
allNumerals[3147]="MMMCXLVIII";
allNumerals[3148]="MMMCXLIX";
allNumerals[3149]="MMMCL";
allNumerals[3150]="MMMCLI";
allNumerals[3151]="MMMCLII";
allNumerals[3152]="MMMCLIII";
allNumerals[3153]="MMMCLIV";
allNumerals[3154]="MMMCLV";
allNumerals[3155]="MMMCLVI";
allNumerals[3156]="MMMCLVII";
allNumerals[3157]="MMMCLVIII";
allNumerals[3158]="MMMCLIX";
allNumerals[3159]="MMMCLX";
allNumerals[3160]="MMMCLXI";
allNumerals[3161]="MMMCLXII";
allNumerals[3162]="MMMCLXIII";
allNumerals[3163]="MMMCLXIV";
allNumerals[3164]="MMMCLXV";
allNumerals[3165]="MMMCLXVI";
allNumerals[3166]="MMMCLXVII";
allNumerals[3167]="MMMCLXVIII";
allNumerals[3168]="MMMCLXIX";
allNumerals[3169]="MMMCLXX";
allNumerals[3170]="MMMCLXXI";
allNumerals[3171]="MMMCLXXII";
allNumerals[3172]="MMMCLXXIII";
allNumerals[3173]="MMMCLXXIV";
allNumerals[3174]="MMMCLXXV";
allNumerals[3175]="MMMCLXXVI";
allNumerals[3176]="MMMCLXXVII";
allNumerals[3177]="MMMCLXXVIII";
allNumerals[3178]="MMMCLXXIX";
allNumerals[3179]="MMMCLXXX";
allNumerals[3180]="MMMCLXXXI";
allNumerals[3181]="MMMCLXXXII";
allNumerals[3182]="MMMCLXXXIII";
allNumerals[3183]="MMMCLXXXIV";
allNumerals[3184]="MMMCLXXXV";
allNumerals[3185]="MMMCLXXXVI";
allNumerals[3186]="MMMCLXXXVII";
allNumerals[3187]="MMMCLXXXVIII";
allNumerals[3188]="MMMCLXXXIX";
allNumerals[3189]="MMMCXC";
allNumerals[3190]="MMMCXCI";
allNumerals[3191]="MMMCXCII";
allNumerals[3192]="MMMCXCIII";
allNumerals[3193]="MMMCXCIV";
allNumerals[3194]="MMMCXCV";
allNumerals[3195]="MMMCXCVI";
allNumerals[3196]="MMMCXCVII";
allNumerals[3197]="MMMCXCVIII";
allNumerals[3198]="MMMCXCIX";
allNumerals[3199]="MMMCC";
allNumerals[3200]="MMMCCI";
allNumerals[3201]="MMMCCII";
allNumerals[3202]="MMMCCIII";
allNumerals[3203]="MMMCCIV";
allNumerals[3204]="MMMCCV";
allNumerals[3205]="MMMCCVI";
allNumerals[3206]="MMMCCVII";
allNumerals[3207]="MMMCCVIII";
allNumerals[3208]="MMMCCIX";
allNumerals[3209]="MMMCCX";
allNumerals[3210]="MMMCCXI";
allNumerals[3211]="MMMCCXII";
allNumerals[3212]="MMMCCXIII";
allNumerals[3213]="MMMCCXIV";
allNumerals[3214]="MMMCCXV";
allNumerals[3215]="MMMCCXVI";
allNumerals[3216]="MMMCCXVII";
allNumerals[3217]="MMMCCXVIII";
allNumerals[3218]="MMMCCXIX";
allNumerals[3219]="MMMCCXX";
allNumerals[3220]="MMMCCXXI";
allNumerals[3221]="MMMCCXXII";
allNumerals[3222]="MMMCCXXIII";
allNumerals[3223]="MMMCCXXIV";
allNumerals[3224]="MMMCCXXV";
allNumerals[3225]="MMMCCXXVI";
allNumerals[3226]="MMMCCXXVII";
allNumerals[3227]="MMMCCXXVIII";
allNumerals[3228]="MMMCCXXIX";
allNumerals[3229]="MMMCCXXX";
allNumerals[3230]="MMMCCXXXI";
allNumerals[3231]="MMMCCXXXII";
allNumerals[3232]="MMMCCXXXIII";
allNumerals[3233]="MMMCCXXXIV";
allNumerals[3234]="MMMCCXXXV";
allNumerals[3235]="MMMCCXXXVI";
allNumerals[3236]="MMMCCXXXVII";
allNumerals[3237]="MMMCCXXXVIII";
allNumerals[3238]="MMMCCXXXIX";
allNumerals[3239]="MMMCCXL";
allNumerals[3240]="MMMCCXLI";
allNumerals[3241]="MMMCCXLII";
allNumerals[3242]="MMMCCXLIII";
allNumerals[3243]="MMMCCXLIV";
allNumerals[3244]="MMMCCXLV";
allNumerals[3245]="MMMCCXLVI";
allNumerals[3246]="MMMCCXLVII";
allNumerals[3247]="MMMCCXLVIII";
allNumerals[3248]="MMMCCXLIX";
allNumerals[3249]="MMMCCL";
allNumerals[3250]="MMMCCLI";
allNumerals[3251]="MMMCCLII";
allNumerals[3252]="MMMCCLIII";
allNumerals[3253]="MMMCCLIV";
allNumerals[3254]="MMMCCLV";
allNumerals[3255]="MMMCCLVI";
allNumerals[3256]="MMMCCLVII";
allNumerals[3257]="MMMCCLVIII";
allNumerals[3258]="MMMCCLIX";
allNumerals[3259]="MMMCCLX";
allNumerals[3260]="MMMCCLXI";
allNumerals[3261]="MMMCCLXII";
allNumerals[3262]="MMMCCLXIII";
allNumerals[3263]="MMMCCLXIV";
allNumerals[3264]="MMMCCLXV";
allNumerals[3265]="MMMCCLXVI";
allNumerals[3266]="MMMCCLXVII";
allNumerals[3267]="MMMCCLXVIII";
allNumerals[3268]="MMMCCLXIX";
allNumerals[3269]="MMMCCLXX";
allNumerals[3270]="MMMCCLXXI";
allNumerals[3271]="MMMCCLXXII";
allNumerals[3272]="MMMCCLXXIII";
allNumerals[3273]="MMMCCLXXIV";
allNumerals[3274]="MMMCCLXXV";
allNumerals[3275]="MMMCCLXXVI";
allNumerals[3276]="MMMCCLXXVII";
allNumerals[3277]="MMMCCLXXVIII";
allNumerals[3278]="MMMCCLXXIX";
allNumerals[3279]="MMMCCLXXX";
allNumerals[3280]="MMMCCLXXXI";
allNumerals[3281]="MMMCCLXXXII";
allNumerals[3282]="MMMCCLXXXIII";
allNumerals[3283]="MMMCCLXXXIV";
allNumerals[3284]="MMMCCLXXXV";
allNumerals[3285]="MMMCCLXXXVI";
allNumerals[3286]="MMMCCLXXXVII";
allNumerals[3287]="MMMCCLXXXVIII";
allNumerals[3288]="MMMCCLXXXIX";
allNumerals[3289]="MMMCCXC";
allNumerals[3290]="MMMCCXCI";
allNumerals[3291]="MMMCCXCII";
allNumerals[3292]="MMMCCXCIII";
allNumerals[3293]="MMMCCXCIV";
allNumerals[3294]="MMMCCXCV";
allNumerals[3295]="MMMCCXCVI";
allNumerals[3296]="MMMCCXCVII";
allNumerals[3297]="MMMCCXCVIII";
allNumerals[3298]="MMMCCXCIX";
allNumerals[3299]="MMMCCC";
allNumerals[3300]="MMMCCCI";
allNumerals[3301]="MMMCCCII";
allNumerals[3302]="MMMCCCIII";
allNumerals[3303]="MMMCCCIV";
allNumerals[3304]="MMMCCCV";
allNumerals[3305]="MMMCCCVI";
allNumerals[3306]="MMMCCCVII";
allNumerals[3307]="MMMCCCVIII";
allNumerals[3308]="MMMCCCIX";
allNumerals[3309]="MMMCCCX";
allNumerals[3310]="MMMCCCXI";
allNumerals[3311]="MMMCCCXII";
allNumerals[3312]="MMMCCCXIII";
allNumerals[3313]="MMMCCCXIV";
allNumerals[3314]="MMMCCCXV";
allNumerals[3315]="MMMCCCXVI";
allNumerals[3316]="MMMCCCXVII";
allNumerals[3317]="MMMCCCXVIII";
allNumerals[3318]="MMMCCCXIX";
allNumerals[3319]="MMMCCCXX";
allNumerals[3320]="MMMCCCXXI";
allNumerals[3321]="MMMCCCXXII";
allNumerals[3322]="MMMCCCXXIII";
allNumerals[3323]="MMMCCCXXIV";
allNumerals[3324]="MMMCCCXXV";
allNumerals[3325]="MMMCCCXXVI";
allNumerals[3326]="MMMCCCXXVII";
allNumerals[3327]="MMMCCCXXVIII";
allNumerals[3328]="MMMCCCXXIX";
allNumerals[3329]="MMMCCCXXX";
allNumerals[3330]="MMMCCCXXXI";
allNumerals[3331]="MMMCCCXXXII";
allNumerals[3332]="MMMCCCXXXIII";
allNumerals[3333]="MMMCCCXXXIV";
allNumerals[3334]="MMMCCCXXXV";
allNumerals[3335]="MMMCCCXXXVI";
allNumerals[3336]="MMMCCCXXXVII";
allNumerals[3337]="MMMCCCXXXVIII";
allNumerals[3338]="MMMCCCXXXIX";
allNumerals[3339]="MMMCCCXL";
allNumerals[3340]="MMMCCCXLI";
allNumerals[3341]="MMMCCCXLII";
allNumerals[3342]="MMMCCCXLIII";
allNumerals[3343]="MMMCCCXLIV";
allNumerals[3344]="MMMCCCXLV";
allNumerals[3345]="MMMCCCXLVI";
allNumerals[3346]="MMMCCCXLVII";
allNumerals[3347]="MMMCCCXLVIII";
allNumerals[3348]="MMMCCCXLIX";
allNumerals[3349]="MMMCCCL";
allNumerals[3350]="MMMCCCLI";
allNumerals[3351]="MMMCCCLII";
allNumerals[3352]="MMMCCCLIII";
allNumerals[3353]="MMMCCCLIV";
allNumerals[3354]="MMMCCCLV";
allNumerals[3355]="MMMCCCLVI";
allNumerals[3356]="MMMCCCLVII";
allNumerals[3357]="MMMCCCLVIII";
allNumerals[3358]="MMMCCCLIX";
allNumerals[3359]="MMMCCCLX";
allNumerals[3360]="MMMCCCLXI";
allNumerals[3361]="MMMCCCLXII";
allNumerals[3362]="MMMCCCLXIII";
allNumerals[3363]="MMMCCCLXIV";
allNumerals[3364]="MMMCCCLXV";
allNumerals[3365]="MMMCCCLXVI";
allNumerals[3366]="MMMCCCLXVII";
allNumerals[3367]="MMMCCCLXVIII";
allNumerals[3368]="MMMCCCLXIX";
allNumerals[3369]="MMMCCCLXX";
allNumerals[3370]="MMMCCCLXXI";
allNumerals[3371]="MMMCCCLXXII";
allNumerals[3372]="MMMCCCLXXIII";
allNumerals[3373]="MMMCCCLXXIV";
allNumerals[3374]="MMMCCCLXXV";
allNumerals[3375]="MMMCCCLXXVI";
allNumerals[3376]="MMMCCCLXXVII";
allNumerals[3377]="MMMCCCLXXVIII";
allNumerals[3378]="MMMCCCLXXIX";
allNumerals[3379]="MMMCCCLXXX";
allNumerals[3380]="MMMCCCLXXXI";
allNumerals[3381]="MMMCCCLXXXII";
allNumerals[3382]="MMMCCCLXXXIII";
allNumerals[3383]="MMMCCCLXXXIV";
allNumerals[3384]="MMMCCCLXXXV";
allNumerals[3385]="MMMCCCLXXXVI";
allNumerals[3386]="MMMCCCLXXXVII";
allNumerals[3387]="MMMCCCLXXXVIII";
allNumerals[3388]="MMMCCCLXXXIX";
allNumerals[3389]="MMMCCCXC";
allNumerals[3390]="MMMCCCXCI";
allNumerals[3391]="MMMCCCXCII";
allNumerals[3392]="MMMCCCXCIII";
allNumerals[3393]="MMMCCCXCIV";
allNumerals[3394]="MMMCCCXCV";
allNumerals[3395]="MMMCCCXCVI";
allNumerals[3396]="MMMCCCXCVII";
allNumerals[3397]="MMMCCCXCVIII";
allNumerals[3398]="MMMCCCXCIX";
allNumerals[3399]="MMMCD";
allNumerals[3400]="MMMCDI";
allNumerals[3401]="MMMCDII";
allNumerals[3402]="MMMCDIII";
allNumerals[3403]="MMMCDIV";
allNumerals[3404]="MMMCDV";
allNumerals[3405]="MMMCDVI";
allNumerals[3406]="MMMCDVII";
allNumerals[3407]="MMMCDVIII";
allNumerals[3408]="MMMCDIX";
allNumerals[3409]="MMMCDX";
allNumerals[3410]="MMMCDXI";
allNumerals[3411]="MMMCDXII";
allNumerals[3412]="MMMCDXIII";
allNumerals[3413]="MMMCDXIV";
allNumerals[3414]="MMMCDXV";
allNumerals[3415]="MMMCDXVI";
allNumerals[3416]="MMMCDXVII";
allNumerals[3417]="MMMCDXVIII";
allNumerals[3418]="MMMCDXIX";
allNumerals[3419]="MMMCDXX";
allNumerals[3420]="MMMCDXXI";
allNumerals[3421]="MMMCDXXII";
allNumerals[3422]="MMMCDXXIII";
allNumerals[3423]="MMMCDXXIV";
allNumerals[3424]="MMMCDXXV";
allNumerals[3425]="MMMCDXXVI";
allNumerals[3426]="MMMCDXXVII";
allNumerals[3427]="MMMCDXXVIII";
allNumerals[3428]="MMMCDXXIX";
allNumerals[3429]="MMMCDXXX";
allNumerals[3430]="MMMCDXXXI";
allNumerals[3431]="MMMCDXXXII";
allNumerals[3432]="MMMCDXXXIII";
allNumerals[3433]="MMMCDXXXIV";
allNumerals[3434]="MMMCDXXXV";
allNumerals[3435]="MMMCDXXXVI";
allNumerals[3436]="MMMCDXXXVII";
allNumerals[3437]="MMMCDXXXVIII";
allNumerals[3438]="MMMCDXXXIX";
allNumerals[3439]="MMMCDXL";
allNumerals[3440]="MMMCDXLI";
allNumerals[3441]="MMMCDXLII";
allNumerals[3442]="MMMCDXLIII";
allNumerals[3443]="MMMCDXLIV";
allNumerals[3444]="MMMCDXLV";
allNumerals[3445]="MMMCDXLVI";
allNumerals[3446]="MMMCDXLVII";
allNumerals[3447]="MMMCDXLVIII";
allNumerals[3448]="MMMCDXLIX";
allNumerals[3449]="MMMCDL";
allNumerals[3450]="MMMCDLI";
allNumerals[3451]="MMMCDLII";
allNumerals[3452]="MMMCDLIII";
allNumerals[3453]="MMMCDLIV";
allNumerals[3454]="MMMCDLV";
allNumerals[3455]="MMMCDLVI";
allNumerals[3456]="MMMCDLVII";
allNumerals[3457]="MMMCDLVIII";
allNumerals[3458]="MMMCDLIX";
allNumerals[3459]="MMMCDLX";
allNumerals[3460]="MMMCDLXI";
allNumerals[3461]="MMMCDLXII";
allNumerals[3462]="MMMCDLXIII";
allNumerals[3463]="MMMCDLXIV";
allNumerals[3464]="MMMCDLXV";
allNumerals[3465]="MMMCDLXVI";
allNumerals[3466]="MMMCDLXVII";
allNumerals[3467]="MMMCDLXVIII";
allNumerals[3468]="MMMCDLXIX";
allNumerals[3469]="MMMCDLXX";
allNumerals[3470]="MMMCDLXXI";
allNumerals[3471]="MMMCDLXXII";
allNumerals[3472]="MMMCDLXXIII";
allNumerals[3473]="MMMCDLXXIV";
allNumerals[3474]="MMMCDLXXV";
allNumerals[3475]="MMMCDLXXVI";
allNumerals[3476]="MMMCDLXXVII";
allNumerals[3477]="MMMCDLXXVIII";
allNumerals[3478]="MMMCDLXXIX";
allNumerals[3479]="MMMCDLXXX";
allNumerals[3480]="MMMCDLXXXI";
allNumerals[3481]="MMMCDLXXXII";
allNumerals[3482]="MMMCDLXXXIII";
allNumerals[3483]="MMMCDLXXXIV";
allNumerals[3484]="MMMCDLXXXV";
allNumerals[3485]="MMMCDLXXXVI";
allNumerals[3486]="MMMCDLXXXVII";
allNumerals[3487]="MMMCDLXXXVIII";
allNumerals[3488]="MMMCDLXXXIX";
allNumerals[3489]="MMMCDXC";
allNumerals[3490]="MMMCDXCI";
allNumerals[3491]="MMMCDXCII";
allNumerals[3492]="MMMCDXCIII";
allNumerals[3493]="MMMCDXCIV";
allNumerals[3494]="MMMCDXCV";
allNumerals[3495]="MMMCDXCVI";
allNumerals[3496]="MMMCDXCVII";
allNumerals[3497]="MMMCDXCVIII";
allNumerals[3498]="MMMCDXCIX";
allNumerals[3499]="MMMD";
allNumerals[3500]="MMMDI";
allNumerals[3501]="MMMDII";
allNumerals[3502]="MMMDIII";
allNumerals[3503]="MMMDIV";
allNumerals[3504]="MMMDV";
allNumerals[3505]="MMMDVI";
allNumerals[3506]="MMMDVII";
allNumerals[3507]="MMMDVIII";
allNumerals[3508]="MMMDIX";
allNumerals[3509]="MMMDX";
allNumerals[3510]="MMMDXI";
allNumerals[3511]="MMMDXII";
allNumerals[3512]="MMMDXIII";
allNumerals[3513]="MMMDXIV";
allNumerals[3514]="MMMDXV";
allNumerals[3515]="MMMDXVI";
allNumerals[3516]="MMMDXVII";
allNumerals[3517]="MMMDXVIII";
allNumerals[3518]="MMMDXIX";
allNumerals[3519]="MMMDXX";
allNumerals[3520]="MMMDXXI";
allNumerals[3521]="MMMDXXII";
allNumerals[3522]="MMMDXXIII";
allNumerals[3523]="MMMDXXIV";
allNumerals[3524]="MMMDXXV";
allNumerals[3525]="MMMDXXVI";
allNumerals[3526]="MMMDXXVII";
allNumerals[3527]="MMMDXXVIII";
allNumerals[3528]="MMMDXXIX";
allNumerals[3529]="MMMDXXX";
allNumerals[3530]="MMMDXXXI";
allNumerals[3531]="MMMDXXXII";
allNumerals[3532]="MMMDXXXIII";
allNumerals[3533]="MMMDXXXIV";
allNumerals[3534]="MMMDXXXV";
allNumerals[3535]="MMMDXXXVI";
allNumerals[3536]="MMMDXXXVII";
allNumerals[3537]="MMMDXXXVIII";
allNumerals[3538]="MMMDXXXIX";
allNumerals[3539]="MMMDXL";
allNumerals[3540]="MMMDXLI";
allNumerals[3541]="MMMDXLII";
allNumerals[3542]="MMMDXLIII";
allNumerals[3543]="MMMDXLIV";
allNumerals[3544]="MMMDXLV";
allNumerals[3545]="MMMDXLVI";
allNumerals[3546]="MMMDXLVII";
allNumerals[3547]="MMMDXLVIII";
allNumerals[3548]="MMMDXLIX";
allNumerals[3549]="MMMDL";
allNumerals[3550]="MMMDLI";
allNumerals[3551]="MMMDLII";
allNumerals[3552]="MMMDLIII";
allNumerals[3553]="MMMDLIV";
allNumerals[3554]="MMMDLV";
allNumerals[3555]="MMMDLVI";
allNumerals[3556]="MMMDLVII";
allNumerals[3557]="MMMDLVIII";
allNumerals[3558]="MMMDLIX";
allNumerals[3559]="MMMDLX";
allNumerals[3560]="MMMDLXI";
allNumerals[3561]="MMMDLXII";
allNumerals[3562]="MMMDLXIII";
allNumerals[3563]="MMMDLXIV";
allNumerals[3564]="MMMDLXV";
allNumerals[3565]="MMMDLXVI";
allNumerals[3566]="MMMDLXVII";
allNumerals[3567]="MMMDLXVIII";
allNumerals[3568]="MMMDLXIX";
allNumerals[3569]="MMMDLXX";
allNumerals[3570]="MMMDLXXI";
allNumerals[3571]="MMMDLXXII";
allNumerals[3572]="MMMDLXXIII";
allNumerals[3573]="MMMDLXXIV";
allNumerals[3574]="MMMDLXXV";
allNumerals[3575]="MMMDLXXVI";
allNumerals[3576]="MMMDLXXVII";
allNumerals[3577]="MMMDLXXVIII";
allNumerals[3578]="MMMDLXXIX";
allNumerals[3579]="MMMDLXXX";
allNumerals[3580]="MMMDLXXXI";
allNumerals[3581]="MMMDLXXXII";
allNumerals[3582]="MMMDLXXXIII";
allNumerals[3583]="MMMDLXXXIV";
allNumerals[3584]="MMMDLXXXV";
allNumerals[3585]="MMMDLXXXVI";
allNumerals[3586]="MMMDLXXXVII";
allNumerals[3587]="MMMDLXXXVIII";
allNumerals[3588]="MMMDLXXXIX";
allNumerals[3589]="MMMDXC";
allNumerals[3590]="MMMDXCI";
allNumerals[3591]="MMMDXCII";
allNumerals[3592]="MMMDXCIII";
allNumerals[3593]="MMMDXCIV";
allNumerals[3594]="MMMDXCV";
allNumerals[3595]="MMMDXCVI";
allNumerals[3596]="MMMDXCVII";
allNumerals[3597]="MMMDXCVIII";
allNumerals[3598]="MMMDXCIX";
allNumerals[3599]="MMMDC";
allNumerals[3600]="MMMDCI";
allNumerals[3601]="MMMDCII";
allNumerals[3602]="MMMDCIII";
allNumerals[3603]="MMMDCIV";
allNumerals[3604]="MMMDCV";
allNumerals[3605]="MMMDCVI";
allNumerals[3606]="MMMDCVII";
allNumerals[3607]="MMMDCVIII";
allNumerals[3608]="MMMDCIX";
allNumerals[3609]="MMMDCX";
allNumerals[3610]="MMMDCXI";
allNumerals[3611]="MMMDCXII";
allNumerals[3612]="MMMDCXIII";
allNumerals[3613]="MMMDCXIV";
allNumerals[3614]="MMMDCXV";
allNumerals[3615]="MMMDCXVI";
allNumerals[3616]="MMMDCXVII";
allNumerals[3617]="MMMDCXVIII";
allNumerals[3618]="MMMDCXIX";
allNumerals[3619]="MMMDCXX";
allNumerals[3620]="MMMDCXXI";
allNumerals[3621]="MMMDCXXII";
allNumerals[3622]="MMMDCXXIII";
allNumerals[3623]="MMMDCXXIV";
allNumerals[3624]="MMMDCXXV";
allNumerals[3625]="MMMDCXXVI";
allNumerals[3626]="MMMDCXXVII";
allNumerals[3627]="MMMDCXXVIII";
allNumerals[3628]="MMMDCXXIX";
allNumerals[3629]="MMMDCXXX";
allNumerals[3630]="MMMDCXXXI";
allNumerals[3631]="MMMDCXXXII";
allNumerals[3632]="MMMDCXXXIII";
allNumerals[3633]="MMMDCXXXIV";
allNumerals[3634]="MMMDCXXXV";
allNumerals[3635]="MMMDCXXXVI";
allNumerals[3636]="MMMDCXXXVII";
allNumerals[3637]="MMMDCXXXVIII";
allNumerals[3638]="MMMDCXXXIX";
allNumerals[3639]="MMMDCXL";
allNumerals[3640]="MMMDCXLI";
allNumerals[3641]="MMMDCXLII";
allNumerals[3642]="MMMDCXLIII";
allNumerals[3643]="MMMDCXLIV";
allNumerals[3644]="MMMDCXLV";
allNumerals[3645]="MMMDCXLVI";
allNumerals[3646]="MMMDCXLVII";
allNumerals[3647]="MMMDCXLVIII";
allNumerals[3648]="MMMDCXLIX";
allNumerals[3649]="MMMDCL";
allNumerals[3650]="MMMDCLI";
allNumerals[3651]="MMMDCLII";
allNumerals[3652]="MMMDCLIII";
allNumerals[3653]="MMMDCLIV";
allNumerals[3654]="MMMDCLV";
allNumerals[3655]="MMMDCLVI";
allNumerals[3656]="MMMDCLVII";
allNumerals[3657]="MMMDCLVIII";
allNumerals[3658]="MMMDCLIX";
allNumerals[3659]="MMMDCLX";
allNumerals[3660]="MMMDCLXI";
allNumerals[3661]="MMMDCLXII";
allNumerals[3662]="MMMDCLXIII";
allNumerals[3663]="MMMDCLXIV";
allNumerals[3664]="MMMDCLXV";
allNumerals[3665]="MMMDCLXVI";
allNumerals[3666]="MMMDCLXVII";
allNumerals[3667]="MMMDCLXVIII";
allNumerals[3668]="MMMDCLXIX";
allNumerals[3669]="MMMDCLXX";
allNumerals[3670]="MMMDCLXXI";
allNumerals[3671]="MMMDCLXXII";
allNumerals[3672]="MMMDCLXXIII";
allNumerals[3673]="MMMDCLXXIV";
allNumerals[3674]="MMMDCLXXV";
allNumerals[3675]="MMMDCLXXVI";
allNumerals[3676]="MMMDCLXXVII";
allNumerals[3677]="MMMDCLXXVIII";
allNumerals[3678]="MMMDCLXXIX";
allNumerals[3679]="MMMDCLXXX";
allNumerals[3680]="MMMDCLXXXI";
allNumerals[3681]="MMMDCLXXXII";
allNumerals[3682]="MMMDCLXXXIII";
allNumerals[3683]="MMMDCLXXXIV";
allNumerals[3684]="MMMDCLXXXV";
allNumerals[3685]="MMMDCLXXXVI";
allNumerals[3686]="MMMDCLXXXVII";
allNumerals[3687]="MMMDCLXXXVIII";
allNumerals[3688]="MMMDCLXXXIX";
allNumerals[3689]="MMMDCXC";
allNumerals[3690]="MMMDCXCI";
allNumerals[3691]="MMMDCXCII";
allNumerals[3692]="MMMDCXCIII";
allNumerals[3693]="MMMDCXCIV";
allNumerals[3694]="MMMDCXCV";
allNumerals[3695]="MMMDCXCVI";
allNumerals[3696]="MMMDCXCVII";
allNumerals[3697]="MMMDCXCVIII";
allNumerals[3698]="MMMDCXCIX";
allNumerals[3699]="MMMDCC";
allNumerals[3700]="MMMDCCI";
allNumerals[3701]="MMMDCCII";
allNumerals[3702]="MMMDCCIII";
allNumerals[3703]="MMMDCCIV";
allNumerals[3704]="MMMDCCV";
allNumerals[3705]="MMMDCCVI";
allNumerals[3706]="MMMDCCVII";
allNumerals[3707]="MMMDCCVIII";
allNumerals[3708]="MMMDCCIX";
allNumerals[3709]="MMMDCCX";
allNumerals[3710]="MMMDCCXI";
allNumerals[3711]="MMMDCCXII";
allNumerals[3712]="MMMDCCXIII";
allNumerals[3713]="MMMDCCXIV";
allNumerals[3714]="MMMDCCXV";
allNumerals[3715]="MMMDCCXVI";
allNumerals[3716]="MMMDCCXVII";
allNumerals[3717]="MMMDCCXVIII";
allNumerals[3718]="MMMDCCXIX";
allNumerals[3719]="MMMDCCXX";
allNumerals[3720]="MMMDCCXXI";
allNumerals[3721]="MMMDCCXXII";
allNumerals[3722]="MMMDCCXXIII";
allNumerals[3723]="MMMDCCXXIV";
allNumerals[3724]="MMMDCCXXV";
allNumerals[3725]="MMMDCCXXVI";
allNumerals[3726]="MMMDCCXXVII";
allNumerals[3727]="MMMDCCXXVIII";
allNumerals[3728]="MMMDCCXXIX";
allNumerals[3729]="MMMDCCXXX";
allNumerals[3730]="MMMDCCXXXI";
allNumerals[3731]="MMMDCCXXXII";
allNumerals[3732]="MMMDCCXXXIII";
allNumerals[3733]="MMMDCCXXXIV";
allNumerals[3734]="MMMDCCXXXV";
allNumerals[3735]="MMMDCCXXXVI";
allNumerals[3736]="MMMDCCXXXVII";
allNumerals[3737]="MMMDCCXXXVIII";
allNumerals[3738]="MMMDCCXXXIX";
allNumerals[3739]="MMMDCCXL";
allNumerals[3740]="MMMDCCXLI";
allNumerals[3741]="MMMDCCXLII";
allNumerals[3742]="MMMDCCXLIII";
allNumerals[3743]="MMMDCCXLIV";
allNumerals[3744]="MMMDCCXLV";
allNumerals[3745]="MMMDCCXLVI";
allNumerals[3746]="MMMDCCXLVII";
allNumerals[3747]="MMMDCCXLVIII";
allNumerals[3748]="MMMDCCXLIX";
allNumerals[3749]="MMMDCCL";
allNumerals[3750]="MMMDCCLI";
allNumerals[3751]="MMMDCCLII";
allNumerals[3752]="MMMDCCLIII";
allNumerals[3753]="MMMDCCLIV";
allNumerals[3754]="MMMDCCLV";
allNumerals[3755]="MMMDCCLVI";
allNumerals[3756]="MMMDCCLVII";
allNumerals[3757]="MMMDCCLVIII";
allNumerals[3758]="MMMDCCLIX";
allNumerals[3759]="MMMDCCLX";
allNumerals[3760]="MMMDCCLXI";
allNumerals[3761]="MMMDCCLXII";
allNumerals[3762]="MMMDCCLXIII";
allNumerals[3763]="MMMDCCLXIV";
allNumerals[3764]="MMMDCCLXV";
allNumerals[3765]="MMMDCCLXVI";
allNumerals[3766]="MMMDCCLXVII";
allNumerals[3767]="MMMDCCLXVIII";
allNumerals[3768]="MMMDCCLXIX";
allNumerals[3769]="MMMDCCLXX";
allNumerals[3770]="MMMDCCLXXI";
allNumerals[3771]="MMMDCCLXXII";
allNumerals[3772]="MMMDCCLXXIII";
allNumerals[3773]="MMMDCCLXXIV";
allNumerals[3774]="MMMDCCLXXV";
allNumerals[3775]="MMMDCCLXXVI";
allNumerals[3776]="MMMDCCLXXVII";
allNumerals[3777]="MMMDCCLXXVIII";
allNumerals[3778]="MMMDCCLXXIX";
allNumerals[3779]="MMMDCCLXXX";
allNumerals[3780]="MMMDCCLXXXI";
allNumerals[3781]="MMMDCCLXXXII";
allNumerals[3782]="MMMDCCLXXXIII";
allNumerals[3783]="MMMDCCLXXXIV";
allNumerals[3784]="MMMDCCLXXXV";
allNumerals[3785]="MMMDCCLXXXVI";
allNumerals[3786]="MMMDCCLXXXVII";
allNumerals[3787]="MMMDCCLXXXVIII";
allNumerals[3788]="MMMDCCLXXXIX";
allNumerals[3789]="MMMDCCXC";
allNumerals[3790]="MMMDCCXCI";
allNumerals[3791]="MMMDCCXCII";
allNumerals[3792]="MMMDCCXCIII";
allNumerals[3793]="MMMDCCXCIV";
allNumerals[3794]="MMMDCCXCV";
allNumerals[3795]="MMMDCCXCVI";
allNumerals[3796]="MMMDCCXCVII";
allNumerals[3797]="MMMDCCXCVIII";
allNumerals[3798]="MMMDCCXCIX";
allNumerals[3799]="MMMDCCC";
allNumerals[3800]="MMMDCCCI";
allNumerals[3801]="MMMDCCCII";
allNumerals[3802]="MMMDCCCIII";
allNumerals[3803]="MMMDCCCIV";
allNumerals[3804]="MMMDCCCV";
allNumerals[3805]="MMMDCCCVI";
allNumerals[3806]="MMMDCCCVII";
allNumerals[3807]="MMMDCCCVIII";
allNumerals[3808]="MMMDCCCIX";
allNumerals[3809]="MMMDCCCX";
allNumerals[3810]="MMMDCCCXI";
allNumerals[3811]="MMMDCCCXII";
allNumerals[3812]="MMMDCCCXIII";
allNumerals[3813]="MMMDCCCXIV";
allNumerals[3814]="MMMDCCCXV";
allNumerals[3815]="MMMDCCCXVI";
allNumerals[3816]="MMMDCCCXVII";
allNumerals[3817]="MMMDCCCXVIII";
allNumerals[3818]="MMMDCCCXIX";
allNumerals[3819]="MMMDCCCXX";
allNumerals[3820]="MMMDCCCXXI";
allNumerals[3821]="MMMDCCCXXII";
allNumerals[3822]="MMMDCCCXXIII";
allNumerals[3823]="MMMDCCCXXIV";
allNumerals[3824]="MMMDCCCXXV";
allNumerals[3825]="MMMDCCCXXVI";
allNumerals[3826]="MMMDCCCXXVII";
allNumerals[3827]="MMMDCCCXXVIII";
allNumerals[3828]="MMMDCCCXXIX";
allNumerals[3829]="MMMDCCCXXX";
allNumerals[3830]="MMMDCCCXXXI";
allNumerals[3831]="MMMDCCCXXXII";
allNumerals[3832]="MMMDCCCXXXIII";
allNumerals[3833]="MMMDCCCXXXIV";
allNumerals[3834]="MMMDCCCXXXV";
allNumerals[3835]="MMMDCCCXXXVI";
allNumerals[3836]="MMMDCCCXXXVII";
allNumerals[3837]="MMMDCCCXXXVIII";
allNumerals[3838]="MMMDCCCXXXIX";
allNumerals[3839]="MMMDCCCXL";
allNumerals[3840]="MMMDCCCXLI";
allNumerals[3841]="MMMDCCCXLII";
allNumerals[3842]="MMMDCCCXLIII";
allNumerals[3843]="MMMDCCCXLIV";
allNumerals[3844]="MMMDCCCXLV";
allNumerals[3845]="MMMDCCCXLVI";
allNumerals[3846]="MMMDCCCXLVII";
allNumerals[3847]="MMMDCCCXLVIII";
allNumerals[3848]="MMMDCCCXLIX";
allNumerals[3849]="MMMDCCCL";
allNumerals[3850]="MMMDCCCLI";
allNumerals[3851]="MMMDCCCLII";
allNumerals[3852]="MMMDCCCLIII";
allNumerals[3853]="MMMDCCCLIV";
allNumerals[3854]="MMMDCCCLV";
allNumerals[3855]="MMMDCCCLVI";
allNumerals[3856]="MMMDCCCLVII";
allNumerals[3857]="MMMDCCCLVIII";
allNumerals[3858]="MMMDCCCLIX";
allNumerals[3859]="MMMDCCCLX";
allNumerals[3860]="MMMDCCCLXI";
allNumerals[3861]="MMMDCCCLXII";
allNumerals[3862]="MMMDCCCLXIII";
allNumerals[3863]="MMMDCCCLXIV";
allNumerals[3864]="MMMDCCCLXV";
allNumerals[3865]="MMMDCCCLXVI";
allNumerals[3866]="MMMDCCCLXVII";
allNumerals[3867]="MMMDCCCLXVIII";
allNumerals[3868]="MMMDCCCLXIX";
allNumerals[3869]="MMMDCCCLXX";
allNumerals[3870]="MMMDCCCLXXI";
allNumerals[3871]="MMMDCCCLXXII";
allNumerals[3872]="MMMDCCCLXXIII";
allNumerals[3873]="MMMDCCCLXXIV";
allNumerals[3874]="MMMDCCCLXXV";
allNumerals[3875]="MMMDCCCLXXVI";
allNumerals[3876]="MMMDCCCLXXVII";
allNumerals[3877]="MMMDCCCLXXVIII";
allNumerals[3878]="MMMDCCCLXXIX";
allNumerals[3879]="MMMDCCCLXXX";
allNumerals[3880]="MMMDCCCLXXXI";
allNumerals[3881]="MMMDCCCLXXXII";
allNumerals[3882]="MMMDCCCLXXXIII";
allNumerals[3883]="MMMDCCCLXXXIV";
allNumerals[3884]="MMMDCCCLXXXV";
allNumerals[3885]="MMMDCCCLXXXVI";
allNumerals[3886]="MMMDCCCLXXXVII";
allNumerals[3887]="MMMDCCCLXXXVIII";
allNumerals[3888]="MMMDCCCLXXXIX";
allNumerals[3889]="MMMDCCCXC";
allNumerals[3890]="MMMDCCCXCI";
allNumerals[3891]="MMMDCCCXCII";
allNumerals[3892]="MMMDCCCXCIII";
allNumerals[3893]="MMMDCCCXCIV";
allNumerals[3894]="MMMDCCCXCV";
allNumerals[3895]="MMMDCCCXCVI";
allNumerals[3896]="MMMDCCCXCVII";
allNumerals[3897]="MMMDCCCXCVIII";
allNumerals[3898]="MMMDCCCXCIX";
allNumerals[3899]="MMMCM";
allNumerals[3900]="MMMCMI";
allNumerals[3901]="MMMCMII";
allNumerals[3902]="MMMCMIII";
allNumerals[3903]="MMMCMIV";
allNumerals[3904]="MMMCMV";
allNumerals[3905]="MMMCMVI";
allNumerals[3906]="MMMCMVII";
allNumerals[3907]="MMMCMVIII";
allNumerals[3908]="MMMCMIX";
allNumerals[3909]="MMMCMX";
allNumerals[3910]="MMMCMXI";
allNumerals[3911]="MMMCMXII";
allNumerals[3912]="MMMCMXIII";
allNumerals[3913]="MMMCMXIV";
allNumerals[3914]="MMMCMXV";
allNumerals[3915]="MMMCMXVI";
allNumerals[3916]="MMMCMXVII";
allNumerals[3917]="MMMCMXVIII";
allNumerals[3918]="MMMCMXIX";
allNumerals[3919]="MMMCMXX";
allNumerals[3920]="MMMCMXXI";
allNumerals[3921]="MMMCMXXII";
allNumerals[3922]="MMMCMXXIII";
allNumerals[3923]="MMMCMXXIV";
allNumerals[3924]="MMMCMXXV";
allNumerals[3925]="MMMCMXXVI";
allNumerals[3926]="MMMCMXXVII";
allNumerals[3927]="MMMCMXXVIII";
allNumerals[3928]="MMMCMXXIX";
allNumerals[3929]="MMMCMXXX";
allNumerals[3930]="MMMCMXXXI";
allNumerals[3931]="MMMCMXXXII";
allNumerals[3932]="MMMCMXXXIII";
allNumerals[3933]="MMMCMXXXIV";
allNumerals[3934]="MMMCMXXXV";
allNumerals[3935]="MMMCMXXXVI";
allNumerals[3936]="MMMCMXXXVII";
allNumerals[3937]="MMMCMXXXVIII";
allNumerals[3938]="MMMCMXXXIX";
allNumerals[3939]="MMMCMXL";
allNumerals[3940]="MMMCMXLI";
allNumerals[3941]="MMMCMXLII";
allNumerals[3942]="MMMCMXLIII";
allNumerals[3943]="MMMCMXLIV";
allNumerals[3944]="MMMCMXLV";
allNumerals[3945]="MMMCMXLVI";
allNumerals[3946]="MMMCMXLVII";
allNumerals[3947]="MMMCMXLVIII";
allNumerals[3948]="MMMCMXLIX";
allNumerals[3949]="MMMCML";
allNumerals[3950]="MMMCMLI";
allNumerals[3951]="MMMCMLII";
allNumerals[3952]="MMMCMLIII";
allNumerals[3953]="MMMCMLIV";
allNumerals[3954]="MMMCMLV";
allNumerals[3955]="MMMCMLVI";
allNumerals[3956]="MMMCMLVII";
allNumerals[3957]="MMMCMLVIII";
allNumerals[3958]="MMMCMLIX";
allNumerals[3959]="MMMCMLX";
allNumerals[3960]="MMMCMLXI";
allNumerals[3961]="MMMCMLXII";
allNumerals[3962]="MMMCMLXIII";
allNumerals[3963]="MMMCMLXIV";
allNumerals[3964]="MMMCMLXV";
allNumerals[3965]="MMMCMLXVI";
allNumerals[3966]="MMMCMLXVII";
allNumerals[3967]="MMMCMLXVIII";
allNumerals[3968]="MMMCMLXIX";
allNumerals[3969]="MMMCMLXX";
allNumerals[3970]="MMMCMLXXI";
allNumerals[3971]="MMMCMLXXII";
allNumerals[3972]="MMMCMLXXIII";
allNumerals[3973]="MMMCMLXXIV";
allNumerals[3974]="MMMCMLXXV";
allNumerals[3975]="MMMCMLXXVI";
allNumerals[3976]="MMMCMLXXVII";
allNumerals[3977]="MMMCMLXXVIII";
allNumerals[3978]="MMMCMLXXIX";
allNumerals[3979]="MMMCMLXXX";
allNumerals[3980]="MMMCMLXXXI";
allNumerals[3981]="MMMCMLXXXII";
allNumerals[3982]="MMMCMLXXXIII";
allNumerals[3983]="MMMCMLXXXIV";
allNumerals[3984]="MMMCMLXXXV";
allNumerals[3985]="MMMCMLXXXVI";
allNumerals[3986]="MMMCMLXXXVII";
allNumerals[3987]="MMMCMLXXXVIII";
allNumerals[3988]="MMMCMLXXXIX";
allNumerals[3989]="MMMCMXC";
allNumerals[3990]="MMMCMXCI";
allNumerals[3991]="MMMCMXCII";
allNumerals[3992]="MMMCMXCIII";
allNumerals[3993]="MMMCMXCIV";
allNumerals[3994]="MMMCMXCV";
allNumerals[3995]="MMMCMXCVI";
allNumerals[3996]="MMMCMXCVII";
allNumerals[3997]="MMMCMXCVIII";
allNumerals[3998]="MMMCMXCIX";


int [][] posValues;
char []inputtedNumerals;
String str;    
    
//for (int i=100; i<allNumerals.length; i++)
//{
    number=allNumerals[99].length();
    inputtedNumerals = new char[number]; // this creates character array with end user specified size
    inputtedNumerals = allNumerals[99].toCharArray();
    System.out.println("THE INPUT NUM: " + inputtedNumerals[0]);
    //new bit of code
    //need to put the String into a character array
    
    posValues = new int [number][2]; // this is used to keep track of:
    // this is 2D array. 'number' simply increments with array index of the roman numeral in character array
    // the multidimensal aspect at 0 index will store: index of which numeral i.e M is 0, D is 1
    //aspect at 1 index will store: decimal conversion
    // This will support later analysis.
    //all values will be set to 1 to ensure a repeat conversion is not processed;
    
    str = allNumerals[99];
    System.out.println("This will be converted to decimal:" + str); // This informs end user of the roman numerals to be converted
    
    performConversion pc = new performConversion(acceptedNumerals, inputtedNumerals,posValues,str); // calls constructor in class to perform conversion
 
    
//}
     }
}

class performConversion
{
    int tempA=0;
    int tempB=0;
    boolean FlagSet=false;
    int sumNotAdded=0;
    int rule4;
    boolean rule3Fail=false;
    char[] inputtedNumerals; // this contains numerals entered by end user
    char[] acceptedNumerals; // this contains array of all accepted numerals
    int [][] posValues; // this keeps track for the index for numeral and also its conversion into decimal
    int total;
    int sum;
    int consecutiveOccurrences;
    String numeralsToString;
    boolean correctOrder=false;
    int oneNumeral;
    int twoNumerals;
    boolean illegalSubtractive=false;
    boolean illegalFourInARowState=false;
    int temp1=0;
    boolean valueBeforeSubtractiveNotation=false;
    int runningTotal=0;
    boolean validNumber=false;
    // This is the constructor used to call the converter method.
    
    public performConversion (char[] aNumerals, char [] inputNumerals, int [][] pValues, String numeralsToString)
    {
        int pc[] = new int[pValues.length];
        this.acceptedNumerals=aNumerals;
        this.inputtedNumerals=inputNumerals;
        this.posValues=pValues;
        this.numeralsToString=numeralsToString;
        
        converter(pc); // this variable has been passed into the method since for some reason it did not pick up the variable even though scope was correct.
    }
    
    public void converter(int [] processedConversion)
    {
        // There will be NO issues in performing conversion of a single roman numeral
        System.out.println("the length is:" + inputtedNumerals.length);
        
        if (inputtedNumerals.length<2) // This functions correctly.
        {
            System.out.println("Conversion is single:" + posValues[0][1]);
        }
        
        // ONCE ALL PRINCIPLES ARE UNDERSTOOD FOR A VALID ROMAN NUMERAL, THE CODE WILL BE IMPLEMENTED FURTHER
        System.out.println("numerals in the roman numeral:" + posValues.length);
        int valueConsecutiveOccurences[] = new int [posValues.length];
        int indexCount=0;
        // These values can only occur once in roman numeral. A counter is kept.
        int countV=0;
        int countL=0;
        int countD=0;
        int zeroIndexCount=0; // on instances, the counter has to start from zeroindex notation
        int rule4Single=0; //this keeps a total of rule 4
        int rule5=0; // this keeps total at rule 5
        int rule5total;
        boolean rule5State=false; // state is set if rule 5 is entered
        int rule6=0; // this keeps total at rule 6
        int rule6total;
        boolean rule6State=false; // state is set if rule 6 is entered
        int rule7=0; // this keeps total at rule 7
        
        int rule7total;
        boolean rule7State=false; // state is set if rule 7 is entered
        // used for
        //Rule 4: Only I, X, and C can be used as subtractive numerals.
        //There can be 6 combinations when we subtract.
        //These are IV = 5 - 1 = 4; IX = 10 - 1 = 9; XL = 50 - 10 = 40;
        // XC = 100 - 10 = 90; CD = 500 - 100 = 400; and CM = 1000 - 100 = 900
        //Another useful IMPORTANT information found on a site is that two subtractive numerals can not be adjacent such as:
        // CDCM since CM is higher however CM CD is also invalid (range is 100-900)
        // The following is invalid: IXIV even though IV is smaller than IX. This is because they are both in same range 1-9
        // In that respect, XC XL is invalid.. both notations are 10-90
        // XCIV is ok
        //{'M','D','C','L','X', 'V','I'};
        // I have partially implemented the rule here since it is too complex.
        String IV = "IV";
        String IX = "IX";
        String XL = "XL";
        String XC = "XC";
        String CD= "CD";
        String CM= "CM";
        int threeInRow=0;
        String [] subtractiveNumerals = new String []{IV,IX,XL,XC,CD,CM};
        int [][] subtractiveNumeralsRange = new int[6][2];
        subtractiveNumeralsRange[0][0] = 1; subtractiveNumeralsRange[0][1] = 4;
        subtractiveNumeralsRange[1][0] = 1; subtractiveNumeralsRange[1][1] = 9;
        subtractiveNumeralsRange[2][0] = 10; subtractiveNumeralsRange[2][1] = 40;
        subtractiveNumeralsRange[3][0] = 10; subtractiveNumeralsRange[3][1] = 90;
        subtractiveNumeralsRange[4][0] = 100; subtractiveNumeralsRange[4][1] = 500;
        subtractiveNumeralsRange[5][0] = 100; subtractiveNumeralsRange[5][1] = 900;
        int sum1=0;
        int total1=0;
        boolean flagError=false;
        boolean result=false;
        int total2=0;
        boolean twoSubtractiveNotations=false;
        boolean singleSubtractiveNotations=false;
        boolean IplacedIncorrect=false;
        boolean rule2State=false;
        int tempBefore=0;
        int rule2=0;
        int rule2total=0;
        boolean invalidSubtractiveNumeral=false;
        int temp=0;
        boolean VLDcheck=false;
        boolean illegalThreeInARowState=false;
        int rangeLower=0;
        int rangeUpper=0;
        String checkComplete[] = new String[subtractiveNumerals.length];
        //-----------------------------------------
        // This has been completed outside main loop because it is processing a string to check values
        // this needs to go inside main loop. otherwise can not check the index of posValues
        
        System.out.println("In rule 4");
        
        for (int i=0; i<subtractiveNumerals.length; i++) // this is going through all 6 combos IV, IX, XL.....
        {
            System.out.println("***********************");
            //System.out.println("Which lop number i:" + i);
            
            for (int j=0; j<subtractiveNumerals.length; j++ ) // this is going through all 6 combos IV, IX, XL.....
            {
                //System.out.println("Which lop number j:" + j);
                
                // NEED MORE LOGIC TO PREVENT IT FROM COMPARING AGAINST ITSELF.
                // OTHERWISE IT WILL PREVENT SINGLE OCCURENCE OF SUBTRACTIVE NOTATION FROM BEING PROCESSED
                
                if (j==i)
                {
                    continue;
                }
                
                // this ensures that there are matches against two subtractive notations before processing
                if (numeralsToString.indexOf(subtractiveNumerals[i])!=-1 && numeralsToString.indexOf(subtractiveNumerals[j])!=-1)
                {
                    FlagSet=true;
                    twoSubtractiveNotations = true;
                    System.out.println("TWO SUBTRACTIVE NOTATIONS FOUND:");
                    System.out.println("***************************");
                    // this checks if subtractive notation lower value appears at index before higher subtractive notation

                    if (numeralsToString.indexOf(subtractiveNumerals[i]) < numeralsToString.indexOf(subtractiveNumerals[j]))
                    {
                        checkComplete[i]=subtractiveNumerals[i]+subtractiveNumerals[j];
                        
                        if(checkComplete[i].indexOf(subtractiveNumerals[j])==-1)
                        {
                            // THERE IS ISSUE IN THIS PART OF CODE:
                            // FOR INSTANCE IF IT DETECTS M CM IV It will first find circumstance ok since IV is in i loop and CM is in j loop
                            //and hence since index of IV will appear higher, it will decide not to proceed with this.
                            // HOWEVER as the i loop progresses it will become CM in i loop.. It will then find IV in the j loop.
                            // In this instance CM will appear lower in the index notation... hence the loop will validate as true and proceed.
                            // Need a way to stop this from occuring.
                            
                            System.out.println(numeralsToString + " is invalid");
                            System.out.println("Incorrect roman numeral. " + subtractiveNumerals[i] + " portion should be before: " + subtractiveNumerals[j]);
                            System.out.println("A group of numerals written in subtractive notation, of lower value, " + subtractiveNumerals[i] + " ( =" + subtractiveNumeralsRange[i][1]+"), cannot precede another group of numerals written in subtractive notation," + subtractiveNumerals[j] + " ( =" + subtractiveNumeralsRange[j][1]+").");
                            illegalSubtractive=true;

                            invalidSubtractiveNumeral=true;
                        }
                    }
                    // this now checks the subtractive notations in correct order
                    if (numeralsToString.indexOf(subtractiveNumerals[i]) > numeralsToString.indexOf(subtractiveNumerals[j]))
                    {
                        //Both these subtractive numerals appear. a case of now checking if range is same
                        System.out.println(subtractiveNumerals[i]);
                        System.out.println("This should print out start of the range:" + subtractiveNumeralsRange[i][0]);
                        System.out.println("This should print out end of the range:" + subtractiveNumeralsRange[i][1]);
                        System.out.println(subtractiveNumerals[j]);
                        System.out.println("This should print out start of the range:" + subtractiveNumeralsRange[j][0]);
                        System.out.println("This should print out end of the range:" + subtractiveNumeralsRange[j][1]);

                        if (subtractiveNumeralsRange[i][0] == subtractiveNumeralsRange[j][0]) // these subtractive notations are in the same range
                        {
                            System.out.println(subtractiveNumerals[i] + " is in the range: " + subtractiveNumeralsRange[i][0] + " - " + subtractiveNumeralsRange[i][1]);
                            System.out.println(subtractiveNumerals[j] + " is in the range: " + subtractiveNumeralsRange[j][0] + " - " + subtractiveNumeralsRange[j][1]);
                            System.out.println("They are both in the same range");
                            processedConversion[numeralsToString.indexOf(subtractiveNumerals[i])]=1;
                            temp = numeralsToString.indexOf(subtractiveNumerals[i]) + 1;
                            processedConversion[temp]=1;
                            System.out.println("REACH HERE!!!!!!!!!!");
                            processedConversion[numeralsToString.indexOf(subtractiveNumerals[j])]=1;
                            temp = numeralsToString.indexOf(subtractiveNumerals[j]) + 1;
                            processedConversion[temp]=1;
                            rule4=0;
                            
                        }
                        if (subtractiveNumeralsRange[i][0] != subtractiveNumeralsRange[j][0]) // this ensures that subtractive notations are not in the same range
                        {
                            if(processedConversion[numeralsToString.indexOf(subtractiveNumerals[i])]!=1 && processedConversion[numeralsToString.indexOf(subtractiveNumerals[j])]!=1 )
                            {
                                if (numeralsToString.indexOf(subtractiveNumerals[i])!=-1 && numeralsToString.indexOf(subtractiveNumerals[j])!=-1)
                                {
                                    System.out.println("correct order");
                                    correctOrder=true;
                                    System.out.println(subtractiveNumerals[i] + " " + numeralsToString.indexOf(subtractiveNumerals[i]));
                                    System.out.println(subtractiveNumerals[j] + " " + numeralsToString.indexOf(subtractiveNumerals[j]));
                                    //CAREFUL THESE BEEN COMMENTED
                                    processedConversion[numeralsToString.indexOf(subtractiveNumerals[i])]=1;
                                    temp = numeralsToString.indexOf(subtractiveNumerals[i]) + 1;
                                    processedConversion[temp]=1;
                                    processedConversion[numeralsToString.indexOf(subtractiveNumerals[j])]=1;
                                    temp = numeralsToString.indexOf(subtractiveNumerals[j]) + 1;
                                    processedConversion[temp]=1;
                                    
                                    switch (subtractiveNumerals[i])
                                    {
                                        case "IV":
                                        runningTotal = runningTotal + 4;
                                        break;
                                        
                                        case "IX":
                                        runningTotal = runningTotal + 9;
                                        break;

                                        case "XL":
                                        runningTotal = runningTotal + 40;
                                        break;
                                        
                                        case "XC":
                                        runningTotal = runningTotal + 90;
                                        break;
                                        
                                        case "CD":
                                        runningTotal = runningTotal + 400;
                                        break;
                                        
                                        case "CM":
                                        runningTotal = runningTotal + 900;
                                        break;
                                        
                                        default:
                                        invalidSubtractiveNumeral = true;
                                    }
                                    
                                    switch (subtractiveNumerals[j])
                                    {
                                        case "IV":
                                        runningTotal = runningTotal + 4;
                                        break;
                                        
                                        case "IX":
                                        runningTotal = runningTotal + 9;
                                        break;
                                        
                                        case "XL":
                                        runningTotal = runningTotal + 40;
                                        break;
                                        
                                        case "XC":
                                        runningTotal = runningTotal + 90;
                                        break;

                                        case "CD":
                                        runningTotal = runningTotal + 400;
                                        break;
                                        
                                        case "CM":
                                        runningTotal = runningTotal + 900;
                                        break;

                                        default:
                                        invalidSubtractiveNumeral = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
            // this confirms if a match is found. -1 value is no match. 0 is a match.
            System.out.println(subtractiveNumerals[i] + " " + numeralsToString.indexOf(subtractiveNumerals[i]));
            
            boolean correctOrder=false;
            System.out.println("total after rule4:" + rule4);
            // this now is just simply going through all subtractive notations if there is no other existing
            // this can not run if the above circumstance is true.
            //System.out.println("Was not expecting this loop to enter with " + subtractiveNumerals[i] + subtractiveNumerals[j]);
            System.out.println(twoSubtractiveNotations);
            
            if (!twoSubtractiveNotations)
            {
                System.out.println("What is I:" + i);
                System.out.println("BE HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!");

                if (numeralsToString.indexOf(subtractiveNumerals[i])!=-1) // This double checks that there is only one subtractive notation
                {
                    System.out.println("BE HERE AGAIN!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                    //if (processedConversion[numeralsToString.indexOf(subtractiveNumerals[i])]!=1)
                    //{
                    System.out.println("BE HERE AGAIN2!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                    // **This is now checking if X for instance is occuring in the numerals and also subtractive notations
                    // ** for instance XCX
                    //the code has not referenced range at all.. this will cause code to fail in scenarios such as MCM where it is VALID
                    
                    System.out.println("ASDASDBGDFSDGFDGFDG");
                    System.out.println(subtractiveNumerals[i]);
                    runningTotal = runningTotal + subtractiveNumeralsRange[i][1];
                    
                    if (numeralsToString.indexOf(subtractiveNumerals[i])!=-1)
                    // if it finds a match of subtractive notation in the numeral consisting of 3 or more numerals
                    {
                        System.out.println(numeralsToString.indexOf(subtractiveNumerals[i]));
                        // this ensures if numeral appears after notation, it gets position 2
                        if (numeralsToString.indexOf(subtractiveNumerals[i])>=0 && numeralsToString.indexOf(subtractiveNumerals[i]) + 2<=posValues.length-1)
                        {
                            tempA = numeralsToString.indexOf(subtractiveNumerals[i])+2;
                            System.out.println("NUMERAL AFTER NOTATION!");
                        }
                        // at this point we know that subtractive notations are legitimate, hence can perform extra step
                        // this ensures if numeral appears before notation, it gets position one place before
                        // it should only also go here lets say for example value before notation is bigger than range of the subtractive notation
                        // for instance MIV it should not go there. Reason is this would ensure for such a numeral as MIVC it compares forward as oppose backware
                        // unsure if this logic will hold.. perhaps better to do
                        //if (numeralsToString.indexOf(subtractiveNumerals[i])!=0
                        
                        if (numeralsToString.indexOf(subtractiveNumerals[i])!=0 /*&& posValues[temp][1]>subtractiveNumeralsRange[i][1] */ )
                        {
                            tempB = numeralsToString.indexOf(subtractiveNumerals[i])-1;
                            valueBeforeSubtractiveNotation = true;
                            tempBefore= numeralsToString.indexOf(subtractiveNumerals[i]);
                            System.out.println("NUMERAL BEFORE NOTATION!");
                        }
                        
                        //temp = numeralsToString.indexOf(subtractiveNumerals[i]) + 2; // sets temp to allow comparison 1st with 3rd char
                        System.out.println("vcbvbnm,,");
                        System.out.println(posValues.length-1);
                        System.out.println(numeralsToString.indexOf(subtractiveNumerals[i]));
                        // NEED MORE LOGIC HERE TO CHANGE HOW TEMP IS GENERATED
                        // FOR INSTANCE WITH XCM temp is one places before than location of index notation
                        //HOWEVER WITH MCM the M is one place before subtractive notation
                        //So need to check in both directions
                        System.out.println("first");
                    }
                    
                    // this is length of two inputtedNumerals. It has no bearing on above.
                    if (numeralsToString.indexOf(subtractiveNumerals[i])!=-1 && posValues.length==2) //this should allow normal flow of app?
                    {
                        temp = numeralsToString.indexOf(subtractiveNumerals[i]) + 1;
                        System.out.println("second");
                    }
                    
                    System.out.println("temp is currrentl: " + temp);
                    System.out.println("WWWWWWWWWWWWWWWWWWWWWWWWWWWW");
                    System.out.println("What is I:" + i);
                    
                    if (temp<=posValues.length && posValues.length>2 )
                    {
                        // this ensures that there is a value in numeral to compare against
                        // it is set to minumum 3 numerals
                        //This checks XCX first char of subtractivenotation X against 2 positions in main array
                        //System.out.println("B:" + numeralsToString.charAt(temp-1));
                        //now need to know the range of the subtractive notation and also the non notation
                        // which is either before or after subtractive notation
                        // VERY IMPORTANT
                        //since the code does not include array holding the numeral and its decimal value, switch statement
                        // will need to be used. posValues was declared two dimensional holding.
                        //Also since something like XC, the index will be split in two and lower and upper range will be outputted.
                        //range for subtractive notation
                        
                        switch (subtractiveNumerals[i].charAt(0))
                        {
                            case 'I':
                            rangeLower=1;
                            break;

                            case 'V':
                            rangeLower=5;
                            break;
                            
                            case 'X':
                            rangeLower=10;
                            break;

                            case 'L':
                            rangeLower=50;
                            break;

                            case 'C':
                            rangeLower=100;
                            break;
                            
                            case 'D':
                            rangeLower=500;
                            break;

                            case 'M':
                            rangeLower=1000;
                            break;
                            
                            default:
                            System.out.println("Do not reach here");
                        }
                        
                        switch (subtractiveNumerals[i].charAt(1))
                        {
                            case 'I':
                            rangeUpper=1;
                            break;

                            case 'V':
                            rangeUpper=5;
                            break;
                            
                            case 'X':
                            rangeUpper=10;
                            break;

                            case 'L':
                            rangeUpper=50;
                            break;
                            
                            case 'C':
                            rangeUpper=100;
                            break;

                            case 'D':
                            rangeUpper=500;
                            break;
                            
                            case 'M':
                            rangeUpper=1000;
                            break;

                            default:
                            System.out.println("Do not reach here");
                        }
                        
                        // This is now the example for XC X X=10 range for XC (is 10-90 )
                        // So evaluating that value at location is not greater or equal to 10
                        //if (tempBefore>0) // this is showing there is check backwards
                        //examples would be CCM
                        
                        if (/*subtractiveNumerals[i].charAt(0) == numeralsToString.charAt(tempBefore) &&*/ posValues[tempB][1] <(subtractiveNumeralsRange[i][1]) && tempBefore>tempB)
                        {
                            System.out.println("2. A numeral (a letter) of lower value" + numeralsToString.charAt(tempB) + "(=" + posValues[tempB][1] + ") "+ "cannot precede a group of numerals written in subtractive notation,");
                            System.out.println(subtractiveNumerals[i] + "( ="+ subtractiveNumeralsRange[i][1] +").");
                            //C CM: A numeral (a letter) of lower value, C ( = 100), cannot precede a group of
                            //numerals written in subtractive notation, CM ( = 900).
                            illegalSubtractive=true;
                        }
                        
                        //temp is set +2 from index of start subtractive notation
                        if (posValues[tempA][1] >=subtractiveNumeralsRange[i][0] && posValues[tempA][1] <=subtractiveNumeralsRange[i][1] && tempA>tempBefore) /*&& posValues.length>2*/
                        {
                            System.out.println("%*%*%*");
                            System.out.println("1. The numeral " + numeralsToString.charAt(tempA) + "(=" + posValues[tempA][1] + ") " + " cannot be placed after a group of numerals written in subtractive notation: " + subtractiveNumerals[i]);
                            System.out.println("Of the same range: " + "( = " + subtractiveNumeralsRange[i][0] + "-" + subtractiveNumeralsRange[i][1] + ").");
                            //The numeral X ( = 10) cannot be placed after a group of numerals written in subtractive notation, XC ( = 90),
                            //of the same range value (10 - 90)
                            illegalSubtractive=true;
                        }
                        
                        // this is now using scenario such as C CM where C (100) appears before CM(subtractive numeral) -range (100-900)
                        // C can not be lower than 900(upper range). It can be equal for scenarios such as MCM (this is valid 1900).
                        // This is using IV C as an EXAMPLE
                        //1 has been subtracted from posValues since it is zero index based
                        //This in the if loop will ensure instances such as M CM are not trapped
                        //However C CM is trapped
                        // RangeUpper!= posValues[temp-1][1]
                        //using real example IVC that ends up in here
                        //this rule has to work in tempB and tempA
                        //example is MIVC since it will pass on MIV section but fail on IVC section
                        // this is looking at perspective of M IV C (examining IV in relation to C)
                        
                        if (subtractiveNumeralsRange[i][1] < posValues[tempA][1] && tempBefore<tempA) /*&& posValues.length>2*/
                        {
                            System.out.println("%*%*%*");
                            System.out.println("3ver1. A group of numerals written in subtractive notation, of lower value,");
                            System.out.println(subtractiveNumerals[i] + " ( = " + (rangeUpper-rangeLower) + "), cannot precede a numeral of larger value, " + numeralsToString.charAt(tempA) + "( = "+posValues[tempA][1]+").");
                            //IV C: A group of numerals written in subtractive notation, of lower value, IV ( = 4),
                            //cannot precede a numeral of larger value, C ( = 100)
                            //System.out.println("1. The numeral " + numeralsToString.charAt(temp) + "(=" + posValues[temp][1] + ") " + " cannot be placed after a group of numerals written in subtractive notation: " + subtractiveNumerals[i]);
                            //System.out.println("Of the same range: " + "( = " + rangeLower + "-" + rangeUpper + ").");
                            
                            illegalSubtractive=true;
                        }
                        
                        // this is looking at perspective of M IV C (examining IV in relation to M)
                        if (subtractiveNumeralsRange[i][1] > posValues[tempB][1] && tempBefore>tempB) /*&& posValues.length>2*/
                        {
                            System.out.println("%*%*%*");
                            System.out.println("3ver2. A group of numerals written in subtractive notation, of higher value,");
                            System.out.println(subtractiveNumerals[i] + " ( = " + (rangeUpper-rangeLower) + "), cannot proceed a numeral of lower value, " + numeralsToString.charAt(tempB) + "( = "+posValues[tempB][1]+".");
                            //IV C: A group of numerals written in subtractive notation, of lower value, IV ( = 4),
                            //cannot precede a numeral of larger value, C ( = 100)
                            
                            illegalSubtractive=true;
                        }
                        
                        // THIS CODE IS REQUIRED FOR EXAMPLE SUCH AS IVC
                        //CAREFUL
                        // this is now checking if such a sequence exists CMM. This is not legal since
                        //subtractive notation CM (900) is less than M (1000).
                        
                        switch (subtractiveNumerals[i])
                        {
                            case "IV":
                                rule4Single = rule4Single + 4;
                                break;
                            
                            case "IX":
                                rule4Single = rule4Single + 9;
                                break;
                            
                            case "XL":
                                rule4Single = rule4Single + 40;
                                break;
                            
                            case "XC":
                                rule4Single = rule4Single + 90;
                                break;
                            
                            case "CD":
                                rule4Single = rule4Single + 400;
                                break;
                            case "CM":
                                rule4Single = rule4Single + 900;
                                break;
                            
                            default:
                                invalidSubtractiveNumeral = true;   
                        }
                        
                        twoSubtractiveNotations=false;
                        singleSubtractiveNotations=true;
                    }
                    
                    processedConversion[numeralsToString.indexOf(subtractiveNumerals[i])]=1;
                    temp = numeralsToString.indexOf(subtractiveNumerals[i]) + 1;
                    processedConversion[temp]=1;
                }
            }
        }
        
        // MAIN PROGRAM EXECUTION
        //this will examine decimal number stored. If identical numerals in consecutive it will add to the total.
        for (int m=1; m<posValues.length; m++) // this is starting not at zero index since compared to previous value
        {
            if (processedConversion[m]!=1)
            {
                //posValues[m][0]=numeral position //[m][1]=decimal
                // This section is best completed examining string of the character array of inputted numerals.
                // Rule 3: The letters V, L, and D are not repeated.
                // There are acceptedNumerals[1], acceptedNumerals[3], acceptedNumerals[5]
                // posValues[m][0] stores information relevant
                //{'M','D','C','L','X', 'V','I'};
                
                System.out.println("Going into rule 3");
                if (!VLDcheck)
                {
                    for (indexCount=0; indexCount<posValues.length; indexCount++)
                    {
                        System.out.println("value of indexCount: " + indexCount);
                        System.out.println(posValues.length);
                        
                        if (posValues[indexCount][1]==5)
                        {
                            countV++;
                            System.out.println("found a V");
                        }
                        
                        if (posValues[indexCount][1]==50)
                        {
                            countL++;
                        }
                        
                        if (posValues[indexCount][1]==500)
                        {
                            countD++;
                        }
                    }
                }
                
                VLDcheck=true;
                
                //Rule 1: When certain numerals are repeated, the number represented by them is their sum. For example, II = 1 + 1 = 2, or XX = 10 + 10 = 20, or, XXX = 10 + 10 + 10 = 30.
                
                if (posValues[m][1]==posValues[m-1][1]) // this is comparing decimal number for numeral against previous one
                {
                    // Rule 2: It is to be noted that no Roman numerals can come together more than 3 times. For example, we cannot write 40 as XXXX
                    // This needs to work from ZeroIndex not m
                    System.out.println("starting rule 1");
                    //if (m!=(posValues.length-2) && posValues.length>3) // what does this rule mean, first part
                    
                    if (posValues.length>3)
                    // m is current position in the numerals array
                    {
                        // has to be 3 advancing numerals to check if 4 together
                        if (m<=posValues.length-3) // can not check for three in row if last element in array
                        {
                            //if (temp1+2<=posValues.length)
                            //{  // checking for three in row same
                            if (temp1+3<=posValues.length)
                            {
                                for (int counter=0;counter<=posValues.length-3;counter=counter+4)
                                {
                                    System.out.println("Value of coutner: " + counter);
    if (posValues[temp1][1]==posValues[temp1+1][1] && posValues[temp1][1]==posValues[temp1+2][1] && posValues[temp1][1]==posValues[temp1+3][1])
                                    {
                                        System.out.println("Four in a row occurrence of: ");
                                        illegalFourInARowState=true;
                                    
                                        System.out.println("********************************************************");
                                        System.out.println("This is temp1 99:" + temp1);
                                        System.out.println("********************************************************");

                                        threeInRow = (posValues[temp1][1] * 3) +threeInRow;
                                        temp1 = temp1+4;

                                        System.out.println("********************************************************");
                                        System.out.println("This is new temp1 :" + temp1);
                                        System.out.println("********************************************************");

                                        if (temp1+3>posValues.length)
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    
                    if (!illegalFourInARowState)
                    {
                        System.out.println("Amit Amlani");
                        
                        if (processedConversion[m]!=1 && processedConversion[m-1]!=1)
                        {
                            rule2total=posValues[m][1]+posValues[m-1][1];
                            rule2=rule2+rule2total; // they will be totalled if same
                            System.out.println("So far sum:" + rule2);
                            rule2State=true;
                        }
                        
                        valueConsecutiveOccurences[m] = posValues[m][1]; //storing decimal value in array.
                        consecutiveOccurrences=consecutiveOccurrences+2;
                        // valueConsecutiveOccurences[m] this keeps a track of the roman numeral that has been repeating
                        //num++;
                        // this checks if there has already been consecutive occurence of the numeral adjacently
                        //[m][0]=numeral position //[m][1]=decimal
                        if (m!=(posValues.length-1))
                        {
                            if (valueConsecutiveOccurences[m]==posValues[m+1][1] && processedConversion[m+1]!=1)
                            {
                                System.out.println("does this happen45");
                                rule2=rule2-(rule2total/2);
                                rule2total=0;
                            }
                        }
                        
                        // NEED TO VERIFY THIS
                        if (illegalThreeInARowState)
                        {
                            rule2=0;
                        }
                    }
                }
                
                //Rule 5: When a Roman numeral is placed after another Roman numeral of greater value,
                //the result is the sum of the numerals. For example, VIII = 5 + 1 + 1 + 1 = 8, or,
                //XV = 10 + 5 = 15,
                // This appears to be where the code has determined if numerals are in some decent order
                System.out.println("What is value of zeroindexcount: " + zeroIndexCount);
                
                if (posValues[m][1]<posValues[m-1][1])
                {
                    System.out.println("How many times does it enter in this section");
                    System.out.println("What is m: " + posValues[m][1]);
                    System.out.println("What is m-1: " + posValues[m-1][1]);
                    //System.out.println("This is value marked with 1: " + posValues[processedConversion[numeralsToString.indexOf(subtractiveNumerals[m])][1]]);
                    //********************Need to be careful here of making it already set to 1

//System.out.println("This is value marked with 1: " + posValues[processedConversion[numeralsToString.indexOf(subtractiveNumerals[m])-1][1]]);
                    if (processedConversion[m-1]!=1)
                    {
                        rule5total = posValues[m][1] + posValues[m-1][1];
                        rule5 = rule5total + rule5;
                        System.out.println("*******RULE5******: " + rule5);
                        rule5total = 0;
                        rule5State=true;
                        //processedConversion[m]=1;
                        //UNSURE
                        //processedConversion[m-1]=1;
                        if (posValues.length==2)
                        {
                            //processedConversion[m-1]=1;
                        }
                        
                        if (m!=1) // if not the first numeral
                        {
                            if (rule4Single!=0)
                            {
                                System.out.println("!!!!!!!!!!!!!!!!!!!!!!!");
                                //rule5=rule4Single + posValues[m][1];
                                rule5=posValues[m][1] + posValues[m-1][1];
                            }
                        }
                    }
                }
                
                System.out.println("at rule 6: " + total1);
                //Rule 6: When a Roman numeral is placed before another Roman numeral of greater value,
                //the result is the difference between the numerals. For example, IV = 5 - 1 = 4, or, XL = 50 - 10 = 40,
                //or XC = 100 - 10 = 90
                
                System.out.println("Rule 6");
                System.out.println("Must WORK!!!!");
                System.out.println(zeroIndexCount);
                System.out.println(posValues[zeroIndexCount][1]);
                
                if (posValues[zeroIndexCount][1]<posValues[zeroIndexCount+1][1])
                {
                    if (posValues[zeroIndexCount][1]==1 && posValues[zeroIndexCount+1][1]>10)
                    {
                        System.out.println("Roman Numeral I can not precede: " + posValues[zeroIndexCount+1][1]);
                        IplacedIncorrect=true;
                    }
                    
                    if (posValues[zeroIndexCount][1]==10 && posValues[zeroIndexCount+1][1]>100)
                    {
                        System.out.println("Roman Numeral X can not precede: " + posValues[zeroIndexCount+1][1]);
                        IplacedIncorrect=true;
                    }
                    
                    if (posValues[zeroIndexCount][1]==50 && posValues[zeroIndexCount+1][1]>=50)
                    {
                        System.out.println("Roman Numeral L can not precede: " + posValues[zeroIndexCount+1][1]);
                        IplacedIncorrect=true;
                    }
                    
                    if (posValues[zeroIndexCount][1]==5 && posValues[zeroIndexCount+1][1]>posValues[zeroIndexCount][1])
                    {
                        System.out.println("Roman Numeral V can not precede: " + posValues[zeroIndexCount+1][1]);
                        IplacedIncorrect=true;
                    }
                    
                    if (posValues[zeroIndexCount][1]!=5 && posValues[zeroIndexCount][1]!=50 && posValues[zeroIndexCount][1]!=500 && !IplacedIncorrect)
                    {
                        processedConversion[zeroIndexCount]=1;
                        rule6total = posValues[zeroIndexCount+1][1] - posValues[zeroIndexCount][1];
                        rule6 = rule6total + rule6;
                        rule6total = 0;
                        rule6State=true;
                    }
                    else
                    { 
                        System.out.println("Illegal subtractive notation found with V, D or L");
                        rule5=0;
                        illegalSubtractive=true;
                    }
                }
                
                // Rule 7: When a Roman numeral of a smaller value is placed between two numerals of greater value,
                //it is subtracted from the numeral on its right. For example, XIV = 10 + (5 - 1) = 14,
                //or, XIX = 10 + (10 - 1) = 19
                System.out.println("Rule 7");
                // rule 7 will not stall by rule 4 since the the right hand side character in rule 4 is always bigger.
                if (m!=posValues.length && posValues.length>2) // a numeral can not be in middle if it is the last in the numeral array
                // it also can not be in middle if the first numeral. Hence using m index notation.
                {
                    if (processedConversion[m]!=1)
                    {
                        //START FROM HERE AND TEST XI
                        if (m!=posValues.length-1)
                        {
                            if (posValues[m][1]<posValues[m-1][1] && posValues[m][1]<posValues[m+1][1])
                            {
                                //System.out.println("what " + (m-1));
                                //processedConversion[m]=1;
                                //System.out.println("This is value marked with 1: " + posValues[processedConversion[numeralsToString.indexOf(subtractiveNumerals[m])][1]]);
                                //processedConversion[m+1]=1;
//System.out.println("This is value marked with 1: " + posValues[processedConversion[numeralsToString.indexOf(subtractiveNumerals[m+1])][1]]);
                                rule7total = posValues[m+1][1] - posValues[m][1];
                                rule7 = rule7total + rule7;
                                rule7total = 0;
                                System.out.println("total at rule 7:" + rule7);
                            }
                        }
                    }
                }
                
                zeroIndexCount++;
                temp1++;
                System.out.println("This is overall total:" + (total1));
            }
        }
        
        // THIS WILL NOW CHECK IF EACH NUMBER HAS OR HAS NOT BEEN PROCESSED IN CHECKING SO far
        int counter=0;
        int unTotal=0;
        
        for (int c: processedConversion)
        {
            System.out.println("This is value of c: " + c);
            System.out.println("This is the numeral value: " + posValues[counter][1]);
            
            if (c!=1)
            {
                unTotal = posValues[counter][1] + unTotal;
                System.out.println("This has not been added to the total" + unTotal);
                System.out.println("This is the position: " + counter);
            }
            
            counter++;
        }
        
        // this is part of rule 3
        if (countD>1 || countL>1 || countV>1)
        {
            System.out.println("Invalid roman numeral. Numeral V or D or L has occured more than once");
            rule3Fail = true;
        }

        if (inputtedNumerals.length==2) // checking number with 2 numerals
        {
            if (posValues[0][0]==posValues[1][0] && rule3Fail==false) // if values identical straight forward conversion
            {
                twoNumerals = posValues[0][1] + posValues[1][1];
                System.out.println("Conversion is double:" + (twoNumerals));
                //System.out.println("XL: " + posValues[0][1]);
                processedConversion[0]=1;
                processedConversion[1]=1;
                //System.out.println("This is value marked with 1: " + posValues[1][1]);
            }
        }
        
        // THIS WILL NOW CHECK IF EACH NUMBER HAS OR HAS NOT BEEN PROCESSED IN CHECKING SO far
        // it is not picking up MM or II
        // This suggests that they have been marked as processedconversion
        if (!illegalSubtractive && !IplacedIncorrect && !rule3Fail && !illegalFourInARowState)
        {
            if (runningTotal>0 && unTotal==0 && FlagSet==true)
            {
                runningTotal = runningTotal / 2;
            }
            
            validNumber=true;
            System.out.println("\n\n********************* GRAND TOTAL*************");
            System.out.println("NOTE: Code is designed for up to MMMM=4000 due to notation changes henceforth");
            System.out.println(numeralsToString + " is a VALID roman numeral");
            System.out.println("runningTotal:" + runningTotal);
            System.out.println("Not added total:" + unTotal );
            System.out.println("**TOTAL: " + (runningTotal+unTotal));
            System.out.println("**********************************");
            //System.exit(0);
        }
        
        if (!validNumber)
        {
            System.out.println("\n\n********************* GRAND TOTAL*************");
            System.out.println(numeralsToString + " is an INVALID roman numeral");
            System.out.println("Address the issues outputted for a valid Roman numeral");
            System.out.println("**********************************");
        }
        
        System.out.println("\n\n\n********************************************");
        System.out.println("OLD PROGRAMME LOGIC");
        System.out.println("\n********************************************");
        System.out.println(numeralsToString + " is the roman numeral");
        System.out.println("number of Vs: " + countV);
        System.out.println("number of Ls: " + countL);
        System.out.println("number of Ds: " + countD);
        System.out.println("rule4: " + rule4);
        System.out.println("rule2: " + rule2);
        System.out.println("rule4Single: " + rule4Single);
        System.out.println("rule5: " + rule5);
        System.out.println("rule6: " + rule6);
        System.out.println("rule7: " + rule7);
        System.out.println("threeinarow:" + threeInRow);
        System.out.println("Untotal:" + unTotal);
        
        if (rule3Fail)
        {
            System.out.println("More than 2 instances of V, L and D:");
            System.out.println("D: " + countD);
            System.out.println("V: " + countV);
            System.out.println("L: " + countL);
            //System.exit(0);
        }
        
        if (!illegalSubtractive && !IplacedIncorrect && !illegalThreeInARowState && !rule3Fail)
        {
            if (unTotal!=0 && rule6!=0 && rule5!=0 && rule4Single!=0 && rule2!=0)
            {
                System.out.println("total1_temp: " + (rule4Single + unTotal));
                System.exit(0);
            }

            if (unTotal!=0 && rule6!=0 && rule5!=0 && rule4Single!=0)
            {
                System.out.println("total1: " + (rule4Single + unTotal + rule5));
                System.exit(0);
            }
            
            if (unTotal!=0 && rule6==0 && rule5==0 && threeInRow!=0)
            {
                System.out.println("total2_temp: " + (rule4Single + unTotal + threeInRow));
                System.exit(0);
            }
            
            if (rule4Single!=0 && unTotal!=0)
            {
                System.out.println("total2: " + (rule4Single + unTotal));
                System.exit(0);
            }
            
            if (rule4Single!=0 && unTotal!=0 && rule2!=0 )
            {
                System.out.println("total4_temp: " + (rule4Single + unTotal));
                System.exit(0);
            }
            
            if (rule4Single==0 && rule2!=0 && rule5!=0 && rule4!=0)
            {
                System.out.println("total4: " + (rule4 + rule2 + rule5));
                System.exit(0);
            }
            
            if (rule4Single==0 && rule2!=0 && rule5!=0 && rule4!=0)
            {
                System.out.println("total4: " + (rule4 + rule2 + rule5));
                System.exit(0);
            }
            
            if (unTotal==0 && rule5==0 && rule2==0 && rule4==0 && threeInRow!=0)
            {
                System.out.println("Total5: " + (threeInRow));
                System.exit(0);
            }
            
            if (unTotal!=0 && rule5!=0 && rule6!=0)
            {
                System.out.println("Total6: " + (unTotal+rule6));
                System.exit(0);
            }
            
            if (unTotal!=0 && rule5!=0 &&rule2!=0)
            {
                System.out.println("Total6: " + (unTotal));
                System.exit(0);
            }
            
            if (unTotal!=0 && rule5==0 && rule2==0 && rule4==0 && threeInRow!=0)
            {
                System.out.println("Total7: " + (unTotal+threeInRow));
                System.exit(0);
            }
            
            if (rule2!=0 && rule4Single==0 && rule5==0 && rule6==0 && threeInRow!=0)
            {
                System.out.println("Total8: " + (threeInRow+rule2));
                System.exit(0);
            }
            
            if (rule2!=0 && rule4Single==0 && rule5==0 && rule6==0 && unTotal!=0)
            {
                System.out.println("Total9: " + (rule2));
                System.exit(0);
            }
            
            if (rule2!=0 && rule4Single==0 && rule5==0 && rule6==0)
            {
                System.out.println("Total10: " + rule2);
                System.exit(0);
            }
            
            if (rule4Single!=0 && rule5!=0 && rule6!=0)
            {
                System.out.println("Total11: " + (rule4Single+rule5));
                System.exit(0);
            }
            
            if (unTotal!=0 && rule5==0 && rule2==0 && rule4==0 && rule4Single==0)
            {
                System.out.println("Total12: " + (unTotal));
                System.exit(0);
            }
            
            if (unTotal!=0 && rule4!=0)
            {
                System.out.println("Total13: " + (unTotal + rule4));
                System.exit(0);
            }
            
            
            if (rule5!=0 && rule6!=0 && unTotal!=0)
            {
                System.out.println(numeralsToString + "is an invalid roman numeral");
                System.out.println(numeralsToString + "INVESTIGATE CODE OR CONDITIONAL IF LOOPS FOR TOTAL IF ENTER OCCURS");
                System.exit(0);
            }
            
            if (rule6!=0 && rule5!=0)
            {
                System.out.println("Total14: " + (rule6+rule5));
                System.exit(0);
            }
            
            if (rule6!=0 && rule2!=0)
            {
                System.out.println("Total 15: " + (rule6+rule2));
                System.exit(0);
            }
            
            
            if (rule5!=0 && rule2!=0 && threeInRow==0 && rule4Single!=0)
            {
                System.out.println("Total16: " + (rule5+rule2));
                System.exit(0);
            }
            
            if (rule5!=0 && rule2!=0 && threeInRow!=0)
            {
                System.out.println("Total17: " + (rule5+rule2));
                System.exit(0);
            }
            
            if (rule5!=0 && rule2!=0)
            {
                System.out.println("Total18: " + (rule5+rule2));
                System.exit(0);
            }
            
            if (rule5!=0 && unTotal!=0)
            {
                System.out.println("Total19: " + (rule5+unTotal));
                System.exit(0);
            }
            
            if (rule5!=0 && rule4!=0)
            {
                System.out.println("Total20: " + (rule5 + rule4));
                System.exit(0);
            }
            
            if (rule5!=0 && threeInRow!=0 && rule4Single!=0)
            {
                System.out.println("Total21: " + (rule5+threeInRow));
                System.exit(0);
            }
            
            if (rule5!=0 && threeInRow!=0)
            {
                System.out.println("Total22: " + (rule5+threeInRow));
                System.exit(0);
            }
            
            if (rule5!=0)
            {
                System.out.println("Total23: " + (rule5));
                System.exit(0);
            }
            
            if (rule2!=0 && unTotal!=0 && rule4Single!=0)
            {
                System.out.println("Total24: " + (rule2 + unTotal + rule4Single));
                System.exit(0);
            }
            
            if (rule2!=0 && rule4Single!=0)
            {
                System.out.println("Total25: " + (rule2 + rule4Single));
                System.exit(0);
            }
            
            if (rule2!=0)
            {
                System.out.println("Total26: " + (twoNumerals));
                System.exit(0);
            }

            if (rule4Single!=0)
            {
                System.out.println("Total27 is: " + (unTotal + rule4Single));
                System.exit(0);
            }
            
            if (rule4!=0)
            {
                System.out.println("Total28 is: " + (rule4));
                System.exit(0);
            }
        }
        
        System.out.println(numeralsToString + " is NOT a VALID roman numeral");
        System.out.println("Address the issues outputted for a valid Roman numeral");
        //System.out.println("this is the overall sum: " + (rule2+rule4Single+rule5+rule6+rule7));
        // System.out.println("this is the overall sum: " + (rule5 + rule2));
        // This is the best logic found on the internet for roman numeral conversion.
        // Logic will be coded one by one and see if it works overall
        /*
It is necessary for us to remember the rules for reading and writing Roman numbers in order to avoid mistakes. Here is a list of the basic rules for Roman numerals.
Rule 1: When certain numerals are repeated, the number represented by them is their sum. For example, II = 1 + 1 = 2, or XX = 10 + 10 = 20, or, XXX = 10 + 10 + 10 = 30.
Rule 2: It is to be noted that no Roman numerals can come together more than 3 times. For example, we cannot write 40 as XXXX
Rule 3: The xcletters V, L, and D are not repeated.
Rule 4: Only I, X, and C can be used as subtractive numerals. There can be 6 combinations when we subtract. These are IV = 5 - 1 = 4; IX = 10 - 1 = 9; XL = 50 - 10 = 40; XC = 100 - 10 = 90; CD = 500 - 100 = 400; and CM = 1000 - 100 = 900
Rule 5: When a Roman numeral is placed after another Roman numeral of greater value, the result is the sum of the numerals. For example, VIII = 5 + 1 + 1 + 1 = 8, or, XV = 10 + 5 = 15,
Rule 6: When a Roman numeral is placed before another Roman numeral of greater value, the result is the difference between the numerals. For example, IV = 5 - 1 = 4, or, XL = 50 - 10 = 40, or XC = 100 - 10 = 90
Rule 7: When a Roman numeral of a smaller value is placed between two numerals of greater value, it is subtracted from the numeral on its right. For example, XIV = 10 + (5 - 1) = 14, or, XIX = 10 + (10 - 1) = 19
Rule 8: To multiply a number by a factor of 1000 a bar is placed over it.
Rule 9: Roman numerals do not follow any place value system.
Rule 10: There is no Roman numeral for zero (0).
*/
    }
}

