Index  Comments

Machines needn't compute as humans do; machines shouldn't compute as humans do. Metaprogramming has shown me that all automatic reckoning eventually explicitly states a subset of the possible answers, somewhere; I'd find myself trying to build the advanced metaprograms I'd thought were possible, only to find increasingly advanced templating as the only reasonable solution; structured metaprogramming is superior; it's clear to me the majority of useful automated program synthesis isn't unstructured.

Computation is disgusting where it be unnecessary, and I've noticed a great deal can be unnecessary.

Working with my machine text representation has had me thinking about tables so often, and of tables referencing tables, and of using but the barest algorithms to compose their saved answers into more. It's uncommon to work backwards from tables of answers, but I now believe this approach is superior.

Representing numbers as Roman numerals is easy for men to figure. A machine can use better methods. Programs men would use for this are useful here for creating the initial tables, but won't be shown. I first wrote a program to generate all Roman numerals, and compared the table of answers to another implementation to increase my confidence. Analyzing my table makes apparent some important details: the largest Roman numeral is fifteen letters long; the range of values fits in three bits, being one of I, V, X, L, C, D, or M, and leaving room for an eighth value; and the table hosts thirty-thousand letters, though a representation using the same amount of storage for each would nearly double this.

The full table
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
XIII
XIV
XV
XVI
XVII
XVIII
XIX
XX
XXI
XXII
XXIII
XXIV
XXV
XXVI
XXVII
XXVIII
XXIX
XXX
XXXI
XXXII
XXXIII
XXXIV
XXXV
XXXVI
XXXVII
XXXVIII
XXXIX
XL
XLI
XLII
XLIII
XLIV
XLV
XLVI
XLVII
XLVIII
XLIX
L
LI
LII
LIII
LIV
LV
LVI
LVII
LVIII
LIX
LX
LXI
LXII
LXIII
LXIV
LXV
LXVI
LXVII
LXVIII
LXIX
LXX
LXXI
LXXII
LXXIII
LXXIV
LXXV
LXXVI
LXXVII
LXXVIII
LXXIX
LXXX
LXXXI
LXXXII
LXXXIII
LXXXIV
LXXXV
LXXXVI
LXXXVII
LXXXVIII
LXXXIX
XC
XCI
XCII
XCIII
XCIV
XCV
XCVI
XCVII
XCVIII
XCIX
C
CI
CII
CIII
CIV
CV
CVI
CVII
CVIII
CIX
CX
CXI
CXII
CXIII
CXIV
CXV
CXVI
CXVII
CXVIII
CXIX
CXX
CXXI
CXXII
CXXIII
CXXIV
CXXV
CXXVI
CXXVII
CXXVIII
CXXIX
CXXX
CXXXI
CXXXII
CXXXIII
CXXXIV
CXXXV
CXXXVI
CXXXVII
CXXXVIII
CXXXIX
CXL
CXLI
CXLII
CXLIII
CXLIV
CXLV
CXLVI
CXLVII
CXLVIII
CXLIX
CL
CLI
CLII
CLIII
CLIV
CLV
CLVI
CLVII
CLVIII
CLIX
CLX
CLXI
CLXII
CLXIII
CLXIV
CLXV
CLXVI
CLXVII
CLXVIII
CLXIX
CLXX
CLXXI
CLXXII
CLXXIII
CLXXIV
CLXXV
CLXXVI
CLXXVII
CLXXVIII
CLXXIX
CLXXX
CLXXXI
CLXXXII
CLXXXIII
CLXXXIV
CLXXXV
CLXXXVI
CLXXXVII
CLXXXVIII
CLXXXIX
CXC
CXCI
CXCII
CXCIII
CXCIV
CXCV
CXCVI
CXCVII
CXCVIII
CXCIX
CC
CCI
CCII
CCIII
CCIV
CCV
CCVI
CCVII
CCVIII
CCIX
CCX
CCXI
CCXII
CCXIII
CCXIV
CCXV
CCXVI
CCXVII
CCXVIII
CCXIX
CCXX
CCXXI
CCXXII
CCXXIII
CCXXIV
CCXXV
CCXXVI
CCXXVII
CCXXVIII
CCXXIX
CCXXX
CCXXXI
CCXXXII
CCXXXIII
CCXXXIV
CCXXXV
CCXXXVI
CCXXXVII
CCXXXVIII
CCXXXIX
CCXL
CCXLI
CCXLII
CCXLIII
CCXLIV
CCXLV
CCXLVI
CCXLVII
CCXLVIII
CCXLIX
CCL
CCLI
CCLII
CCLIII
CCLIV
CCLV
CCLVI
CCLVII
CCLVIII
CCLIX
CCLX
CCLXI
CCLXII
CCLXIII
CCLXIV
CCLXV
CCLXVI
CCLXVII
CCLXVIII
CCLXIX
CCLXX
CCLXXI
CCLXXII
CCLXXIII
CCLXXIV
CCLXXV
CCLXXVI
CCLXXVII
CCLXXVIII
CCLXXIX
CCLXXX
CCLXXXI
CCLXXXII
CCLXXXIII
CCLXXXIV
CCLXXXV
CCLXXXVI
CCLXXXVII
CCLXXXVIII
CCLXXXIX
CCXC
CCXCI
CCXCII
CCXCIII
CCXCIV
CCXCV
CCXCVI
CCXCVII
CCXCVIII
CCXCIX
CCC
CCCI
CCCII
CCCIII
CCCIV
CCCV
CCCVI
CCCVII
CCCVIII
CCCIX
CCCX
CCCXI
CCCXII
CCCXIII
CCCXIV
CCCXV
CCCXVI
CCCXVII
CCCXVIII
CCCXIX
CCCXX
CCCXXI
CCCXXII
CCCXXIII
CCCXXIV
CCCXXV
CCCXXVI
CCCXXVII
CCCXXVIII
CCCXXIX
CCCXXX
CCCXXXI
CCCXXXII
CCCXXXIII
CCCXXXIV
CCCXXXV
CCCXXXVI
CCCXXXVII
CCCXXXVIII
CCCXXXIX
CCCXL
CCCXLI
CCCXLII
CCCXLIII
CCCXLIV
CCCXLV
CCCXLVI
CCCXLVII
CCCXLVIII
CCCXLIX
CCCL
CCCLI
CCCLII
CCCLIII
CCCLIV
CCCLV
CCCLVI
CCCLVII
CCCLVIII
CCCLIX
CCCLX
CCCLXI
CCCLXII
CCCLXIII
CCCLXIV
CCCLXV
CCCLXVI
CCCLXVII
CCCLXVIII
CCCLXIX
CCCLXX
CCCLXXI
CCCLXXII
CCCLXXIII
CCCLXXIV
CCCLXXV
CCCLXXVI
CCCLXXVII
CCCLXXVIII
CCCLXXIX
CCCLXXX
CCCLXXXI
CCCLXXXII
CCCLXXXIII
CCCLXXXIV
CCCLXXXV
CCCLXXXVI
CCCLXXXVII
CCCLXXXVIII
CCCLXXXIX
CCCXC
CCCXCI
CCCXCII
CCCXCIII
CCCXCIV
CCCXCV
CCCXCVI
CCCXCVII
CCCXCVIII
CCCXCIX
CD
CDI
CDII
CDIII
CDIV
CDV
CDVI
CDVII
CDVIII
CDIX
CDX
CDXI
CDXII
CDXIII
CDXIV
CDXV
CDXVI
CDXVII
CDXVIII
CDXIX
CDXX
CDXXI
CDXXII
CDXXIII
CDXXIV
CDXXV
CDXXVI
CDXXVII
CDXXVIII
CDXXIX
CDXXX
CDXXXI
CDXXXII
CDXXXIII
CDXXXIV
CDXXXV
CDXXXVI
CDXXXVII
CDXXXVIII
CDXXXIX
CDXL
CDXLI
CDXLII
CDXLIII
CDXLIV
CDXLV
CDXLVI
CDXLVII
CDXLVIII
CDXLIX
CDL
CDLI
CDLII
CDLIII
CDLIV
CDLV
CDLVI
CDLVII
CDLVIII
CDLIX
CDLX
CDLXI
CDLXII
CDLXIII
CDLXIV
CDLXV
CDLXVI
CDLXVII
CDLXVIII
CDLXIX
CDLXX
CDLXXI
CDLXXII
CDLXXIII
CDLXXIV
CDLXXV
CDLXXVI
CDLXXVII
CDLXXVIII
CDLXXIX
CDLXXX
CDLXXXI
CDLXXXII
CDLXXXIII
CDLXXXIV
CDLXXXV
CDLXXXVI
CDLXXXVII
CDLXXXVIII
CDLXXXIX
CDXC
CDXCI
CDXCII
CDXCIII
CDXCIV
CDXCV
CDXCVI
CDXCVII
CDXCVIII
CDXCIX
D
DI
DII
DIII
DIV
DV
DVI
DVII
DVIII
DIX
DX
DXI
DXII
DXIII
DXIV
DXV
DXVI
DXVII
DXVIII
DXIX
DXX
DXXI
DXXII
DXXIII
DXXIV
DXXV
DXXVI
DXXVII
DXXVIII
DXXIX
DXXX
DXXXI
DXXXII
DXXXIII
DXXXIV
DXXXV
DXXXVI
DXXXVII
DXXXVIII
DXXXIX
DXL
DXLI
DXLII
DXLIII
DXLIV
DXLV
DXLVI
DXLVII
DXLVIII
DXLIX
DL
DLI
DLII
DLIII
DLIV
DLV
DLVI
DLVII
DLVIII
DLIX
DLX
DLXI
DLXII
DLXIII
DLXIV
DLXV
DLXVI
DLXVII
DLXVIII
DLXIX
DLXX
DLXXI
DLXXII
DLXXIII
DLXXIV
DLXXV
DLXXVI
DLXXVII
DLXXVIII
DLXXIX
DLXXX
DLXXXI
DLXXXII
DLXXXIII
DLXXXIV
DLXXXV
DLXXXVI
DLXXXVII
DLXXXVIII
DLXXXIX
DXC
DXCI
DXCII
DXCIII
DXCIV
DXCV
DXCVI
DXCVII
DXCVIII
DXCIX
DC
DCI
DCII
DCIII
DCIV
DCV
DCVI
DCVII
DCVIII
DCIX
DCX
DCXI
DCXII
DCXIII
DCXIV
DCXV
DCXVI
DCXVII
DCXVIII
DCXIX
DCXX
DCXXI
DCXXII
DCXXIII
DCXXIV
DCXXV
DCXXVI
DCXXVII
DCXXVIII
DCXXIX
DCXXX
DCXXXI
DCXXXII
DCXXXIII
DCXXXIV
DCXXXV
DCXXXVI
DCXXXVII
DCXXXVIII
DCXXXIX
DCXL
DCXLI
DCXLII
DCXLIII
DCXLIV
DCXLV
DCXLVI
DCXLVII
DCXLVIII
DCXLIX
DCL
DCLI
DCLII
DCLIII
DCLIV
DCLV
DCLVI
DCLVII
DCLVIII
DCLIX
DCLX
DCLXI
DCLXII
DCLXIII
DCLXIV
DCLXV
DCLXVI
DCLXVII
DCLXVIII
DCLXIX
DCLXX
DCLXXI
DCLXXII
DCLXXIII
DCLXXIV
DCLXXV
DCLXXVI
DCLXXVII
DCLXXVIII
DCLXXIX
DCLXXX
DCLXXXI
DCLXXXII
DCLXXXIII
DCLXXXIV
DCLXXXV
DCLXXXVI
DCLXXXVII
DCLXXXVIII
DCLXXXIX
DCXC
DCXCI
DCXCII
DCXCIII
DCXCIV
DCXCV
DCXCVI
DCXCVII
DCXCVIII
DCXCIX
DCC
DCCI
DCCII
DCCIII
DCCIV
DCCV
DCCVI
DCCVII
DCCVIII
DCCIX
DCCX
DCCXI
DCCXII
DCCXIII
DCCXIV
DCCXV
DCCXVI
DCCXVII
DCCXVIII
DCCXIX
DCCXX
DCCXXI
DCCXXII
DCCXXIII
DCCXXIV
DCCXXV
DCCXXVI
DCCXXVII
DCCXXVIII
DCCXXIX
DCCXXX
DCCXXXI
DCCXXXII
DCCXXXIII
DCCXXXIV
DCCXXXV
DCCXXXVI
DCCXXXVII
DCCXXXVIII
DCCXXXIX
DCCXL
DCCXLI
DCCXLII
DCCXLIII
DCCXLIV
DCCXLV
DCCXLVI
DCCXLVII
DCCXLVIII
DCCXLIX
DCCL
DCCLI
DCCLII
DCCLIII
DCCLIV
DCCLV
DCCLVI
DCCLVII
DCCLVIII
DCCLIX
DCCLX
DCCLXI
DCCLXII
DCCLXIII
DCCLXIV
DCCLXV
DCCLXVI
DCCLXVII
DCCLXVIII
DCCLXIX
DCCLXX
DCCLXXI
DCCLXXII
DCCLXXIII
DCCLXXIV
DCCLXXV
DCCLXXVI
DCCLXXVII
DCCLXXVIII
DCCLXXIX
DCCLXXX
DCCLXXXI
DCCLXXXII
DCCLXXXIII
DCCLXXXIV
DCCLXXXV
DCCLXXXVI
DCCLXXXVII
DCCLXXXVIII
DCCLXXXIX
DCCXC
DCCXCI
DCCXCII
DCCXCIII
DCCXCIV
DCCXCV
DCCXCVI
DCCXCVII
DCCXCVIII
DCCXCIX
DCCC
DCCCI
DCCCII
DCCCIII
DCCCIV
DCCCV
DCCCVI
DCCCVII
DCCCVIII
DCCCIX
DCCCX
DCCCXI
DCCCXII
DCCCXIII
DCCCXIV
DCCCXV
DCCCXVI
DCCCXVII
DCCCXVIII
DCCCXIX
DCCCXX
DCCCXXI
DCCCXXII
DCCCXXIII
DCCCXXIV
DCCCXXV
DCCCXXVI
DCCCXXVII
DCCCXXVIII
DCCCXXIX
DCCCXXX
DCCCXXXI
DCCCXXXII
DCCCXXXIII
DCCCXXXIV
DCCCXXXV
DCCCXXXVI
DCCCXXXVII
DCCCXXXVIII
DCCCXXXIX
DCCCXL
DCCCXLI
DCCCXLII
DCCCXLIII
DCCCXLIV
DCCCXLV
DCCCXLVI
DCCCXLVII
DCCCXLVIII
DCCCXLIX
DCCCL
DCCCLI
DCCCLII
DCCCLIII
DCCCLIV
DCCCLV
DCCCLVI
DCCCLVII
DCCCLVIII
DCCCLIX
DCCCLX
DCCCLXI
DCCCLXII
DCCCLXIII
DCCCLXIV
DCCCLXV
DCCCLXVI
DCCCLXVII
DCCCLXVIII
DCCCLXIX
DCCCLXX
DCCCLXXI
DCCCLXXII
DCCCLXXIII
DCCCLXXIV
DCCCLXXV
DCCCLXXVI
DCCCLXXVII
DCCCLXXVIII
DCCCLXXIX
DCCCLXXX
DCCCLXXXI
DCCCLXXXII
DCCCLXXXIII
DCCCLXXXIV
DCCCLXXXV
DCCCLXXXVI
DCCCLXXXVII
DCCCLXXXVIII
DCCCLXXXIX
DCCCXC
DCCCXCI
DCCCXCII
DCCCXCIII
DCCCXCIV
DCCCXCV
DCCCXCVI
DCCCXCVII
DCCCXCVIII
DCCCXCIX
CM
CMI
CMII
CMIII
CMIV
CMV
CMVI
CMVII
CMVIII
CMIX
CMX
CMXI
CMXII
CMXIII
CMXIV
CMXV
CMXVI
CMXVII
CMXVIII
CMXIX
CMXX
CMXXI
CMXXII
CMXXIII
CMXXIV
CMXXV
CMXXVI
CMXXVII
CMXXVIII
CMXXIX
CMXXX
CMXXXI
CMXXXII
CMXXXIII
CMXXXIV
CMXXXV
CMXXXVI
CMXXXVII
CMXXXVIII
CMXXXIX
CMXL
CMXLI
CMXLII
CMXLIII
CMXLIV
CMXLV
CMXLVI
CMXLVII
CMXLVIII
CMXLIX
CML
CMLI
CMLII
CMLIII
CMLIV
CMLV
CMLVI
CMLVII
CMLVIII
CMLIX
CMLX
CMLXI
CMLXII
CMLXIII
CMLXIV
CMLXV
CMLXVI
CMLXVII
CMLXVIII
CMLXIX
CMLXX
CMLXXI
CMLXXII
CMLXXIII
CMLXXIV
CMLXXV
CMLXXVI
CMLXXVII
CMLXXVIII
CMLXXIX
CMLXXX
CMLXXXI
CMLXXXII
CMLXXXIII
CMLXXXIV
CMLXXXV
CMLXXXVI
CMLXXXVII
CMLXXXVIII
CMLXXXIX
CMXC
CMXCI
CMXCII
CMXCIII
CMXCIV
CMXCV
CMXCVI
CMXCVII
CMXCVIII
CMXCIX
M
MI
MII
MIII
MIV
MV
MVI
MVII
MVIII
MIX
MX
MXI
MXII
MXIII
MXIV
MXV
MXVI
MXVII
MXVIII
MXIX
MXX
MXXI
MXXII
MXXIII
MXXIV
MXXV
MXXVI
MXXVII
MXXVIII
MXXIX
MXXX
MXXXI
MXXXII
MXXXIII
MXXXIV
MXXXV
MXXXVI
MXXXVII
MXXXVIII
MXXXIX
MXL
MXLI
MXLII
MXLIII
MXLIV
MXLV
MXLVI
MXLVII
MXLVIII
MXLIX
ML
MLI
MLII
MLIII
MLIV
MLV
MLVI
MLVII
MLVIII
MLIX
MLX
MLXI
MLXII
MLXIII
MLXIV
MLXV
MLXVI
MLXVII
MLXVIII
MLXIX
MLXX
MLXXI
MLXXII
MLXXIII
MLXXIV
MLXXV
MLXXVI
MLXXVII
MLXXVIII
MLXXIX
MLXXX
MLXXXI
MLXXXII
MLXXXIII
MLXXXIV
MLXXXV
MLXXXVI
MLXXXVII
MLXXXVIII
MLXXXIX
MXC
MXCI
MXCII
MXCIII
MXCIV
MXCV
MXCVI
MXCVII
MXCVIII
MXCIX
MC
MCI
MCII
MCIII
MCIV
MCV
MCVI
MCVII
MCVIII
MCIX
MCX
MCXI
MCXII
MCXIII
MCXIV
MCXV
MCXVI
MCXVII
MCXVIII
MCXIX
MCXX
MCXXI
MCXXII
MCXXIII
MCXXIV
MCXXV
MCXXVI
MCXXVII
MCXXVIII
MCXXIX
MCXXX
MCXXXI
MCXXXII
MCXXXIII
MCXXXIV
MCXXXV
MCXXXVI
MCXXXVII
MCXXXVIII
MCXXXIX
MCXL
MCXLI
MCXLII
MCXLIII
MCXLIV
MCXLV
MCXLVI
MCXLVII
MCXLVIII
MCXLIX
MCL
MCLI
MCLII
MCLIII
MCLIV
MCLV
MCLVI
MCLVII
MCLVIII
MCLIX
MCLX
MCLXI
MCLXII
MCLXIII
MCLXIV
MCLXV
MCLXVI
MCLXVII
MCLXVIII
MCLXIX
MCLXX
MCLXXI
MCLXXII
MCLXXIII
MCLXXIV
MCLXXV
MCLXXVI
MCLXXVII
MCLXXVIII
MCLXXIX
MCLXXX
MCLXXXI
MCLXXXII
MCLXXXIII
MCLXXXIV
MCLXXXV
MCLXXXVI
MCLXXXVII
MCLXXXVIII
MCLXXXIX
MCXC
MCXCI
MCXCII
MCXCIII
MCXCIV
MCXCV
MCXCVI
MCXCVII
MCXCVIII
MCXCIX
MCC
MCCI
MCCII
MCCIII
MCCIV
MCCV
MCCVI
MCCVII
MCCVIII
MCCIX
MCCX
MCCXI
MCCXII
MCCXIII
MCCXIV
MCCXV
MCCXVI
MCCXVII
MCCXVIII
MCCXIX
MCCXX
MCCXXI
MCCXXII
MCCXXIII
MCCXXIV
MCCXXV
MCCXXVI
MCCXXVII
MCCXXVIII
MCCXXIX
MCCXXX
MCCXXXI
MCCXXXII
MCCXXXIII
MCCXXXIV
MCCXXXV
MCCXXXVI
MCCXXXVII
MCCXXXVIII
MCCXXXIX
MCCXL
MCCXLI
MCCXLII
MCCXLIII
MCCXLIV
MCCXLV
MCCXLVI
MCCXLVII
MCCXLVIII
MCCXLIX
MCCL
MCCLI
MCCLII
MCCLIII
MCCLIV
MCCLV
MCCLVI
MCCLVII
MCCLVIII
MCCLIX
MCCLX
MCCLXI
MCCLXII
MCCLXIII
MCCLXIV
MCCLXV
MCCLXVI
MCCLXVII
MCCLXVIII
MCCLXIX
MCCLXX
MCCLXXI
MCCLXXII
MCCLXXIII
MCCLXXIV
MCCLXXV
MCCLXXVI
MCCLXXVII
MCCLXXVIII
MCCLXXIX
MCCLXXX
MCCLXXXI
MCCLXXXII
MCCLXXXIII
MCCLXXXIV
MCCLXXXV
MCCLXXXVI
MCCLXXXVII
MCCLXXXVIII
MCCLXXXIX
MCCXC
MCCXCI
MCCXCII
MCCXCIII
MCCXCIV
MCCXCV
MCCXCVI
MCCXCVII
MCCXCVIII
MCCXCIX
MCCC
MCCCI
MCCCII
MCCCIII
MCCCIV
MCCCV
MCCCVI
MCCCVII
MCCCVIII
MCCCIX
MCCCX
MCCCXI
MCCCXII
MCCCXIII
MCCCXIV
MCCCXV
MCCCXVI
MCCCXVII
MCCCXVIII
MCCCXIX
MCCCXX
MCCCXXI
MCCCXXII
MCCCXXIII
MCCCXXIV
MCCCXXV
MCCCXXVI
MCCCXXVII
MCCCXXVIII
MCCCXXIX
MCCCXXX
MCCCXXXI
MCCCXXXII
MCCCXXXIII
MCCCXXXIV
MCCCXXXV
MCCCXXXVI
MCCCXXXVII
MCCCXXXVIII
MCCCXXXIX
MCCCXL
MCCCXLI
MCCCXLII
MCCCXLIII
MCCCXLIV
MCCCXLV
MCCCXLVI
MCCCXLVII
MCCCXLVIII
MCCCXLIX
MCCCL
MCCCLI
MCCCLII
MCCCLIII
MCCCLIV
MCCCLV
MCCCLVI
MCCCLVII
MCCCLVIII
MCCCLIX
MCCCLX
MCCCLXI
MCCCLXII
MCCCLXIII
MCCCLXIV
MCCCLXV
MCCCLXVI
MCCCLXVII
MCCCLXVIII
MCCCLXIX
MCCCLXX
MCCCLXXI
MCCCLXXII
MCCCLXXIII
MCCCLXXIV
MCCCLXXV
MCCCLXXVI
MCCCLXXVII
MCCCLXXVIII
MCCCLXXIX
MCCCLXXX
MCCCLXXXI
MCCCLXXXII
MCCCLXXXIII
MCCCLXXXIV
MCCCLXXXV
MCCCLXXXVI
MCCCLXXXVII
MCCCLXXXVIII
MCCCLXXXIX
MCCCXC
MCCCXCI
MCCCXCII
MCCCXCIII
MCCCXCIV
MCCCXCV
MCCCXCVI
MCCCXCVII
MCCCXCVIII
MCCCXCIX
MCD
MCDI
MCDII
MCDIII
MCDIV
MCDV
MCDVI
MCDVII
MCDVIII
MCDIX
MCDX
MCDXI
MCDXII
MCDXIII
MCDXIV
MCDXV
MCDXVI
MCDXVII
MCDXVIII
MCDXIX
MCDXX
MCDXXI
MCDXXII
MCDXXIII
MCDXXIV
MCDXXV
MCDXXVI
MCDXXVII
MCDXXVIII
MCDXXIX
MCDXXX
MCDXXXI
MCDXXXII
MCDXXXIII
MCDXXXIV
MCDXXXV
MCDXXXVI
MCDXXXVII
MCDXXXVIII
MCDXXXIX
MCDXL
MCDXLI
MCDXLII
MCDXLIII
MCDXLIV
MCDXLV
MCDXLVI
MCDXLVII
MCDXLVIII
MCDXLIX
MCDL
MCDLI
MCDLII
MCDLIII
MCDLIV
MCDLV
MCDLVI
MCDLVII
MCDLVIII
MCDLIX
MCDLX
MCDLXI
MCDLXII
MCDLXIII
MCDLXIV
MCDLXV
MCDLXVI
MCDLXVII
MCDLXVIII
MCDLXIX
MCDLXX
MCDLXXI
MCDLXXII
MCDLXXIII
MCDLXXIV
MCDLXXV
MCDLXXVI
MCDLXXVII
MCDLXXVIII
MCDLXXIX
MCDLXXX
MCDLXXXI
MCDLXXXII
MCDLXXXIII
MCDLXXXIV
MCDLXXXV
MCDLXXXVI
MCDLXXXVII
MCDLXXXVIII
MCDLXXXIX
MCDXC
MCDXCI
MCDXCII
MCDXCIII
MCDXCIV
MCDXCV
MCDXCVI
MCDXCVII
MCDXCVIII
MCDXCIX
MD
MDI
MDII
MDIII
MDIV
MDV
MDVI
MDVII
MDVIII
MDIX
MDX
MDXI
MDXII
MDXIII
MDXIV
MDXV
MDXVI
MDXVII
MDXVIII
MDXIX
MDXX
MDXXI
MDXXII
MDXXIII
MDXXIV
MDXXV
MDXXVI
MDXXVII
MDXXVIII
MDXXIX
MDXXX
MDXXXI
MDXXXII
MDXXXIII
MDXXXIV
MDXXXV
MDXXXVI
MDXXXVII
MDXXXVIII
MDXXXIX
MDXL
MDXLI
MDXLII
MDXLIII
MDXLIV
MDXLV
MDXLVI
MDXLVII
MDXLVIII
MDXLIX
MDL
MDLI
MDLII
MDLIII
MDLIV
MDLV
MDLVI
MDLVII
MDLVIII
MDLIX
MDLX
MDLXI
MDLXII
MDLXIII
MDLXIV
MDLXV
MDLXVI
MDLXVII
MDLXVIII
MDLXIX
MDLXX
MDLXXI
MDLXXII
MDLXXIII
MDLXXIV
MDLXXV
MDLXXVI
MDLXXVII
MDLXXVIII
MDLXXIX
MDLXXX
MDLXXXI
MDLXXXII
MDLXXXIII
MDLXXXIV
MDLXXXV
MDLXXXVI
MDLXXXVII
MDLXXXVIII
MDLXXXIX
MDXC
MDXCI
MDXCII
MDXCIII
MDXCIV
MDXCV
MDXCVI
MDXCVII
MDXCVIII
MDXCIX
MDC
MDCI
MDCII
MDCIII
MDCIV
MDCV
MDCVI
MDCVII
MDCVIII
MDCIX
MDCX
MDCXI
MDCXII
MDCXIII
MDCXIV
MDCXV
MDCXVI
MDCXVII
MDCXVIII
MDCXIX
MDCXX
MDCXXI
MDCXXII
MDCXXIII
MDCXXIV
MDCXXV
MDCXXVI
MDCXXVII
MDCXXVIII
MDCXXIX
MDCXXX
MDCXXXI
MDCXXXII
MDCXXXIII
MDCXXXIV
MDCXXXV
MDCXXXVI
MDCXXXVII
MDCXXXVIII
MDCXXXIX
MDCXL
MDCXLI
MDCXLII
MDCXLIII
MDCXLIV
MDCXLV
MDCXLVI
MDCXLVII
MDCXLVIII
MDCXLIX
MDCL
MDCLI
MDCLII
MDCLIII
MDCLIV
MDCLV
MDCLVI
MDCLVII
MDCLVIII
MDCLIX
MDCLX
MDCLXI
MDCLXII
MDCLXIII
MDCLXIV
MDCLXV
MDCLXVI
MDCLXVII
MDCLXVIII
MDCLXIX
MDCLXX
MDCLXXI
MDCLXXII
MDCLXXIII
MDCLXXIV
MDCLXXV
MDCLXXVI
MDCLXXVII
MDCLXXVIII
MDCLXXIX
MDCLXXX
MDCLXXXI
MDCLXXXII
MDCLXXXIII
MDCLXXXIV
MDCLXXXV
MDCLXXXVI
MDCLXXXVII
MDCLXXXVIII
MDCLXXXIX
MDCXC
MDCXCI
MDCXCII
MDCXCIII
MDCXCIV
MDCXCV
MDCXCVI
MDCXCVII
MDCXCVIII
MDCXCIX
MDCC
MDCCI
MDCCII
MDCCIII
MDCCIV
MDCCV
MDCCVI
MDCCVII
MDCCVIII
MDCCIX
MDCCX
MDCCXI
MDCCXII
MDCCXIII
MDCCXIV
MDCCXV
MDCCXVI
MDCCXVII
MDCCXVIII
MDCCXIX
MDCCXX
MDCCXXI
MDCCXXII
MDCCXXIII
MDCCXXIV
MDCCXXV
MDCCXXVI
MDCCXXVII
MDCCXXVIII
MDCCXXIX
MDCCXXX
MDCCXXXI
MDCCXXXII
MDCCXXXIII
MDCCXXXIV
MDCCXXXV
MDCCXXXVI
MDCCXXXVII
MDCCXXXVIII
MDCCXXXIX
MDCCXL
MDCCXLI
MDCCXLII
MDCCXLIII
MDCCXLIV
MDCCXLV
MDCCXLVI
MDCCXLVII
MDCCXLVIII
MDCCXLIX
MDCCL
MDCCLI
MDCCLII
MDCCLIII
MDCCLIV
MDCCLV
MDCCLVI
MDCCLVII
MDCCLVIII
MDCCLIX
MDCCLX
MDCCLXI
MDCCLXII
MDCCLXIII
MDCCLXIV
MDCCLXV
MDCCLXVI
MDCCLXVII
MDCCLXVIII
MDCCLXIX
MDCCLXX
MDCCLXXI
MDCCLXXII
MDCCLXXIII
MDCCLXXIV
MDCCLXXV
MDCCLXXVI
MDCCLXXVII
MDCCLXXVIII
MDCCLXXIX
MDCCLXXX
MDCCLXXXI
MDCCLXXXII
MDCCLXXXIII
MDCCLXXXIV
MDCCLXXXV
MDCCLXXXVI
MDCCLXXXVII
MDCCLXXXVIII
MDCCLXXXIX
MDCCXC
MDCCXCI
MDCCXCII
MDCCXCIII
MDCCXCIV
MDCCXCV
MDCCXCVI
MDCCXCVII
MDCCXCVIII
MDCCXCIX
MDCCC
MDCCCI
MDCCCII
MDCCCIII
MDCCCIV
MDCCCV
MDCCCVI
MDCCCVII
MDCCCVIII
MDCCCIX
MDCCCX
MDCCCXI
MDCCCXII
MDCCCXIII
MDCCCXIV
MDCCCXV
MDCCCXVI
MDCCCXVII
MDCCCXVIII
MDCCCXIX
MDCCCXX
MDCCCXXI
MDCCCXXII
MDCCCXXIII
MDCCCXXIV
MDCCCXXV
MDCCCXXVI
MDCCCXXVII
MDCCCXXVIII
MDCCCXXIX
MDCCCXXX
MDCCCXXXI
MDCCCXXXII
MDCCCXXXIII
MDCCCXXXIV
MDCCCXXXV
MDCCCXXXVI
MDCCCXXXVII
MDCCCXXXVIII
MDCCCXXXIX
MDCCCXL
MDCCCXLI
MDCCCXLII
MDCCCXLIII
MDCCCXLIV
MDCCCXLV
MDCCCXLVI
MDCCCXLVII
MDCCCXLVIII
MDCCCXLIX
MDCCCL
MDCCCLI
MDCCCLII
MDCCCLIII
MDCCCLIV
MDCCCLV
MDCCCLVI
MDCCCLVII
MDCCCLVIII
MDCCCLIX
MDCCCLX
MDCCCLXI
MDCCCLXII
MDCCCLXIII
MDCCCLXIV
MDCCCLXV
MDCCCLXVI
MDCCCLXVII
MDCCCLXVIII
MDCCCLXIX
MDCCCLXX
MDCCCLXXI
MDCCCLXXII
MDCCCLXXIII
MDCCCLXXIV
MDCCCLXXV
MDCCCLXXVI
MDCCCLXXVII
MDCCCLXXVIII
MDCCCLXXIX
MDCCCLXXX
MDCCCLXXXI
MDCCCLXXXII
MDCCCLXXXIII
MDCCCLXXXIV
MDCCCLXXXV
MDCCCLXXXVI
MDCCCLXXXVII
MDCCCLXXXVIII
MDCCCLXXXIX
MDCCCXC
MDCCCXCI
MDCCCXCII
MDCCCXCIII
MDCCCXCIV
MDCCCXCV
MDCCCXCVI
MDCCCXCVII
MDCCCXCVIII
MDCCCXCIX
MCM
MCMI
MCMII
MCMIII
MCMIV
MCMV
MCMVI
MCMVII
MCMVIII
MCMIX
MCMX
MCMXI
MCMXII
MCMXIII
MCMXIV
MCMXV
MCMXVI
MCMXVII
MCMXVIII
MCMXIX
MCMXX
MCMXXI
MCMXXII
MCMXXIII
MCMXXIV
MCMXXV
MCMXXVI
MCMXXVII
MCMXXVIII
MCMXXIX
MCMXXX
MCMXXXI
MCMXXXII
MCMXXXIII
MCMXXXIV
MCMXXXV
MCMXXXVI
MCMXXXVII
MCMXXXVIII
MCMXXXIX
MCMXL
MCMXLI
MCMXLII
MCMXLIII
MCMXLIV
MCMXLV
MCMXLVI
MCMXLVII
MCMXLVIII
MCMXLIX
MCML
MCMLI
MCMLII
MCMLIII
MCMLIV
MCMLV
MCMLVI
MCMLVII
MCMLVIII
MCMLIX
MCMLX
MCMLXI
MCMLXII
MCMLXIII
MCMLXIV
MCMLXV
MCMLXVI
MCMLXVII
MCMLXVIII
MCMLXIX
MCMLXX
MCMLXXI
MCMLXXII
MCMLXXIII
MCMLXXIV
MCMLXXV
MCMLXXVI
MCMLXXVII
MCMLXXVIII
MCMLXXIX
MCMLXXX
MCMLXXXI
MCMLXXXII
MCMLXXXIII
MCMLXXXIV
MCMLXXXV
MCMLXXXVI
MCMLXXXVII
MCMLXXXVIII
MCMLXXXIX
MCMXC
MCMXCI
MCMXCII
MCMXCIII
MCMXCIV
MCMXCV
MCMXCVI
MCMXCVII
MCMXCVIII
MCMXCIX
MM
MMI
MMII
MMIII
MMIV
MMV
MMVI
MMVII
MMVIII
MMIX
MMX
MMXI
MMXII
MMXIII
MMXIV
MMXV
MMXVI
MMXVII
MMXVIII
MMXIX
MMXX
MMXXI
MMXXII
MMXXIII
MMXXIV
MMXXV
MMXXVI
MMXXVII
MMXXVIII
MMXXIX
MMXXX
MMXXXI
MMXXXII
MMXXXIII
MMXXXIV
MMXXXV
MMXXXVI
MMXXXVII
MMXXXVIII
MMXXXIX
MMXL
MMXLI
MMXLII
MMXLIII
MMXLIV
MMXLV
MMXLVI
MMXLVII
MMXLVIII
MMXLIX
MML
MMLI
MMLII
MMLIII
MMLIV
MMLV
MMLVI
MMLVII
MMLVIII
MMLIX
MMLX
MMLXI
MMLXII
MMLXIII
MMLXIV
MMLXV
MMLXVI
MMLXVII
MMLXVIII
MMLXIX
MMLXX
MMLXXI
MMLXXII
MMLXXIII
MMLXXIV
MMLXXV
MMLXXVI
MMLXXVII
MMLXXVIII
MMLXXIX
MMLXXX
MMLXXXI
MMLXXXII
MMLXXXIII
MMLXXXIV
MMLXXXV
MMLXXXVI
MMLXXXVII
MMLXXXVIII
MMLXXXIX
MMXC
MMXCI
MMXCII
MMXCIII
MMXCIV
MMXCV
MMXCVI
MMXCVII
MMXCVIII
MMXCIX
MMC
MMCI
MMCII
MMCIII
MMCIV
MMCV
MMCVI
MMCVII
MMCVIII
MMCIX
MMCX
MMCXI
MMCXII
MMCXIII
MMCXIV
MMCXV
MMCXVI
MMCXVII
MMCXVIII
MMCXIX
MMCXX
MMCXXI
MMCXXII
MMCXXIII
MMCXXIV
MMCXXV
MMCXXVI
MMCXXVII
MMCXXVIII
MMCXXIX
MMCXXX
MMCXXXI
MMCXXXII
MMCXXXIII
MMCXXXIV
MMCXXXV
MMCXXXVI
MMCXXXVII
MMCXXXVIII
MMCXXXIX
MMCXL
MMCXLI
MMCXLII
MMCXLIII
MMCXLIV
MMCXLV
MMCXLVI
MMCXLVII
MMCXLVIII
MMCXLIX
MMCL
MMCLI
MMCLII
MMCLIII
MMCLIV
MMCLV
MMCLVI
MMCLVII
MMCLVIII
MMCLIX
MMCLX
MMCLXI
MMCLXII
MMCLXIII
MMCLXIV
MMCLXV
MMCLXVI
MMCLXVII
MMCLXVIII
MMCLXIX
MMCLXX
MMCLXXI
MMCLXXII
MMCLXXIII
MMCLXXIV
MMCLXXV
MMCLXXVI
MMCLXXVII
MMCLXXVIII
MMCLXXIX
MMCLXXX
MMCLXXXI
MMCLXXXII
MMCLXXXIII
MMCLXXXIV
MMCLXXXV
MMCLXXXVI
MMCLXXXVII
MMCLXXXVIII
MMCLXXXIX
MMCXC
MMCXCI
MMCXCII
MMCXCIII
MMCXCIV
MMCXCV
MMCXCVI
MMCXCVII
MMCXCVIII
MMCXCIX
MMCC
MMCCI
MMCCII
MMCCIII
MMCCIV
MMCCV
MMCCVI
MMCCVII
MMCCVIII
MMCCIX
MMCCX
MMCCXI
MMCCXII
MMCCXIII
MMCCXIV
MMCCXV
MMCCXVI
MMCCXVII
MMCCXVIII
MMCCXIX
MMCCXX
MMCCXXI
MMCCXXII
MMCCXXIII
MMCCXXIV
MMCCXXV
MMCCXXVI
MMCCXXVII
MMCCXXVIII
MMCCXXIX
MMCCXXX
MMCCXXXI
MMCCXXXII
MMCCXXXIII
MMCCXXXIV
MMCCXXXV
MMCCXXXVI
MMCCXXXVII
MMCCXXXVIII
MMCCXXXIX
MMCCXL
MMCCXLI
MMCCXLII
MMCCXLIII
MMCCXLIV
MMCCXLV
MMCCXLVI
MMCCXLVII
MMCCXLVIII
MMCCXLIX
MMCCL
MMCCLI
MMCCLII
MMCCLIII
MMCCLIV
MMCCLV
MMCCLVI
MMCCLVII
MMCCLVIII
MMCCLIX
MMCCLX
MMCCLXI
MMCCLXII
MMCCLXIII
MMCCLXIV
MMCCLXV
MMCCLXVI
MMCCLXVII
MMCCLXVIII
MMCCLXIX
MMCCLXX
MMCCLXXI
MMCCLXXII
MMCCLXXIII
MMCCLXXIV
MMCCLXXV
MMCCLXXVI
MMCCLXXVII
MMCCLXXVIII
MMCCLXXIX
MMCCLXXX
MMCCLXXXI
MMCCLXXXII
MMCCLXXXIII
MMCCLXXXIV
MMCCLXXXV
MMCCLXXXVI
MMCCLXXXVII
MMCCLXXXVIII
MMCCLXXXIX
MMCCXC
MMCCXCI
MMCCXCII
MMCCXCIII
MMCCXCIV
MMCCXCV
MMCCXCVI
MMCCXCVII
MMCCXCVIII
MMCCXCIX
MMCCC
MMCCCI
MMCCCII
MMCCCIII
MMCCCIV
MMCCCV
MMCCCVI
MMCCCVII
MMCCCVIII
MMCCCIX
MMCCCX
MMCCCXI
MMCCCXII
MMCCCXIII
MMCCCXIV
MMCCCXV
MMCCCXVI
MMCCCXVII
MMCCCXVIII
MMCCCXIX
MMCCCXX
MMCCCXXI
MMCCCXXII
MMCCCXXIII
MMCCCXXIV
MMCCCXXV
MMCCCXXVI
MMCCCXXVII
MMCCCXXVIII
MMCCCXXIX
MMCCCXXX
MMCCCXXXI
MMCCCXXXII
MMCCCXXXIII
MMCCCXXXIV
MMCCCXXXV
MMCCCXXXVI
MMCCCXXXVII
MMCCCXXXVIII
MMCCCXXXIX
MMCCCXL
MMCCCXLI
MMCCCXLII
MMCCCXLIII
MMCCCXLIV
MMCCCXLV
MMCCCXLVI
MMCCCXLVII
MMCCCXLVIII
MMCCCXLIX
MMCCCL
MMCCCLI
MMCCCLII
MMCCCLIII
MMCCCLIV
MMCCCLV
MMCCCLVI
MMCCCLVII
MMCCCLVIII
MMCCCLIX
MMCCCLX
MMCCCLXI
MMCCCLXII
MMCCCLXIII
MMCCCLXIV
MMCCCLXV
MMCCCLXVI
MMCCCLXVII
MMCCCLXVIII
MMCCCLXIX
MMCCCLXX
MMCCCLXXI
MMCCCLXXII
MMCCCLXXIII
MMCCCLXXIV
MMCCCLXXV
MMCCCLXXVI
MMCCCLXXVII
MMCCCLXXVIII
MMCCCLXXIX
MMCCCLXXX
MMCCCLXXXI
MMCCCLXXXII
MMCCCLXXXIII
MMCCCLXXXIV
MMCCCLXXXV
MMCCCLXXXVI
MMCCCLXXXVII
MMCCCLXXXVIII
MMCCCLXXXIX
MMCCCXC
MMCCCXCI
MMCCCXCII
MMCCCXCIII
MMCCCXCIV
MMCCCXCV
MMCCCXCVI
MMCCCXCVII
MMCCCXCVIII
MMCCCXCIX
MMCD
MMCDI
MMCDII
MMCDIII
MMCDIV
MMCDV
MMCDVI
MMCDVII
MMCDVIII
MMCDIX
MMCDX
MMCDXI
MMCDXII
MMCDXIII
MMCDXIV
MMCDXV
MMCDXVI
MMCDXVII
MMCDXVIII
MMCDXIX
MMCDXX
MMCDXXI
MMCDXXII
MMCDXXIII
MMCDXXIV
MMCDXXV
MMCDXXVI
MMCDXXVII
MMCDXXVIII
MMCDXXIX
MMCDXXX
MMCDXXXI
MMCDXXXII
MMCDXXXIII
MMCDXXXIV
MMCDXXXV
MMCDXXXVI
MMCDXXXVII
MMCDXXXVIII
MMCDXXXIX
MMCDXL
MMCDXLI
MMCDXLII
MMCDXLIII
MMCDXLIV
MMCDXLV
MMCDXLVI
MMCDXLVII
MMCDXLVIII
MMCDXLIX
MMCDL
MMCDLI
MMCDLII
MMCDLIII
MMCDLIV
MMCDLV
MMCDLVI
MMCDLVII
MMCDLVIII
MMCDLIX
MMCDLX
MMCDLXI
MMCDLXII
MMCDLXIII
MMCDLXIV
MMCDLXV
MMCDLXVI
MMCDLXVII
MMCDLXVIII
MMCDLXIX
MMCDLXX
MMCDLXXI
MMCDLXXII
MMCDLXXIII
MMCDLXXIV
MMCDLXXV
MMCDLXXVI
MMCDLXXVII
MMCDLXXVIII
MMCDLXXIX
MMCDLXXX
MMCDLXXXI
MMCDLXXXII
MMCDLXXXIII
MMCDLXXXIV
MMCDLXXXV
MMCDLXXXVI
MMCDLXXXVII
MMCDLXXXVIII
MMCDLXXXIX
MMCDXC
MMCDXCI
MMCDXCII
MMCDXCIII
MMCDXCIV
MMCDXCV
MMCDXCVI
MMCDXCVII
MMCDXCVIII
MMCDXCIX
MMD
MMDI
MMDII
MMDIII
MMDIV
MMDV
MMDVI
MMDVII
MMDVIII
MMDIX
MMDX
MMDXI
MMDXII
MMDXIII
MMDXIV
MMDXV
MMDXVI
MMDXVII
MMDXVIII
MMDXIX
MMDXX
MMDXXI
MMDXXII
MMDXXIII
MMDXXIV
MMDXXV
MMDXXVI
MMDXXVII
MMDXXVIII
MMDXXIX
MMDXXX
MMDXXXI
MMDXXXII
MMDXXXIII
MMDXXXIV
MMDXXXV
MMDXXXVI
MMDXXXVII
MMDXXXVIII
MMDXXXIX
MMDXL
MMDXLI
MMDXLII
MMDXLIII
MMDXLIV
MMDXLV
MMDXLVI
MMDXLVII
MMDXLVIII
MMDXLIX
MMDL
MMDLI
MMDLII
MMDLIII
MMDLIV
MMDLV
MMDLVI
MMDLVII
MMDLVIII
MMDLIX
MMDLX
MMDLXI
MMDLXII
MMDLXIII
MMDLXIV
MMDLXV
MMDLXVI
MMDLXVII
MMDLXVIII
MMDLXIX
MMDLXX
MMDLXXI
MMDLXXII
MMDLXXIII
MMDLXXIV
MMDLXXV
MMDLXXVI
MMDLXXVII
MMDLXXVIII
MMDLXXIX
MMDLXXX
MMDLXXXI
MMDLXXXII
MMDLXXXIII
MMDLXXXIV
MMDLXXXV
MMDLXXXVI
MMDLXXXVII
MMDLXXXVIII
MMDLXXXIX
MMDXC
MMDXCI
MMDXCII
MMDXCIII
MMDXCIV
MMDXCV
MMDXCVI
MMDXCVII
MMDXCVIII
MMDXCIX
MMDC
MMDCI
MMDCII
MMDCIII
MMDCIV
MMDCV
MMDCVI
MMDCVII
MMDCVIII
MMDCIX
MMDCX
MMDCXI
MMDCXII
MMDCXIII
MMDCXIV
MMDCXV
MMDCXVI
MMDCXVII
MMDCXVIII
MMDCXIX
MMDCXX
MMDCXXI
MMDCXXII
MMDCXXIII
MMDCXXIV
MMDCXXV
MMDCXXVI
MMDCXXVII
MMDCXXVIII
MMDCXXIX
MMDCXXX
MMDCXXXI
MMDCXXXII
MMDCXXXIII
MMDCXXXIV
MMDCXXXV
MMDCXXXVI
MMDCXXXVII
MMDCXXXVIII
MMDCXXXIX
MMDCXL
MMDCXLI
MMDCXLII
MMDCXLIII
MMDCXLIV
MMDCXLV
MMDCXLVI
MMDCXLVII
MMDCXLVIII
MMDCXLIX
MMDCL
MMDCLI
MMDCLII
MMDCLIII
MMDCLIV
MMDCLV
MMDCLVI
MMDCLVII
MMDCLVIII
MMDCLIX
MMDCLX
MMDCLXI
MMDCLXII
MMDCLXIII
MMDCLXIV
MMDCLXV
MMDCLXVI
MMDCLXVII
MMDCLXVIII
MMDCLXIX
MMDCLXX
MMDCLXXI
MMDCLXXII
MMDCLXXIII
MMDCLXXIV
MMDCLXXV
MMDCLXXVI
MMDCLXXVII
MMDCLXXVIII
MMDCLXXIX
MMDCLXXX
MMDCLXXXI
MMDCLXXXII
MMDCLXXXIII
MMDCLXXXIV
MMDCLXXXV
MMDCLXXXVI
MMDCLXXXVII
MMDCLXXXVIII
MMDCLXXXIX
MMDCXC
MMDCXCI
MMDCXCII
MMDCXCIII
MMDCXCIV
MMDCXCV
MMDCXCVI
MMDCXCVII
MMDCXCVIII
MMDCXCIX
MMDCC
MMDCCI
MMDCCII
MMDCCIII
MMDCCIV
MMDCCV
MMDCCVI
MMDCCVII
MMDCCVIII
MMDCCIX
MMDCCX
MMDCCXI
MMDCCXII
MMDCCXIII
MMDCCXIV
MMDCCXV
MMDCCXVI
MMDCCXVII
MMDCCXVIII
MMDCCXIX
MMDCCXX
MMDCCXXI
MMDCCXXII
MMDCCXXIII
MMDCCXXIV
MMDCCXXV
MMDCCXXVI
MMDCCXXVII
MMDCCXXVIII
MMDCCXXIX
MMDCCXXX
MMDCCXXXI
MMDCCXXXII
MMDCCXXXIII
MMDCCXXXIV
MMDCCXXXV
MMDCCXXXVI
MMDCCXXXVII
MMDCCXXXVIII
MMDCCXXXIX
MMDCCXL
MMDCCXLI
MMDCCXLII
MMDCCXLIII
MMDCCXLIV
MMDCCXLV
MMDCCXLVI
MMDCCXLVII
MMDCCXLVIII
MMDCCXLIX
MMDCCL
MMDCCLI
MMDCCLII
MMDCCLIII
MMDCCLIV
MMDCCLV
MMDCCLVI
MMDCCLVII
MMDCCLVIII
MMDCCLIX
MMDCCLX
MMDCCLXI
MMDCCLXII
MMDCCLXIII
MMDCCLXIV
MMDCCLXV
MMDCCLXVI
MMDCCLXVII
MMDCCLXVIII
MMDCCLXIX
MMDCCLXX
MMDCCLXXI
MMDCCLXXII
MMDCCLXXIII
MMDCCLXXIV
MMDCCLXXV
MMDCCLXXVI
MMDCCLXXVII
MMDCCLXXVIII
MMDCCLXXIX
MMDCCLXXX
MMDCCLXXXI
MMDCCLXXXII
MMDCCLXXXIII
MMDCCLXXXIV
MMDCCLXXXV
MMDCCLXXXVI
MMDCCLXXXVII
MMDCCLXXXVIII
MMDCCLXXXIX
MMDCCXC
MMDCCXCI
MMDCCXCII
MMDCCXCIII
MMDCCXCIV
MMDCCXCV
MMDCCXCVI
MMDCCXCVII
MMDCCXCVIII
MMDCCXCIX
MMDCCC
MMDCCCI
MMDCCCII
MMDCCCIII
MMDCCCIV
MMDCCCV
MMDCCCVI
MMDCCCVII
MMDCCCVIII
MMDCCCIX
MMDCCCX
MMDCCCXI
MMDCCCXII
MMDCCCXIII
MMDCCCXIV
MMDCCCXV
MMDCCCXVI
MMDCCCXVII
MMDCCCXVIII
MMDCCCXIX
MMDCCCXX
MMDCCCXXI
MMDCCCXXII
MMDCCCXXIII
MMDCCCXXIV
MMDCCCXXV
MMDCCCXXVI
MMDCCCXXVII
MMDCCCXXVIII
MMDCCCXXIX
MMDCCCXXX
MMDCCCXXXI
MMDCCCXXXII
MMDCCCXXXIII
MMDCCCXXXIV
MMDCCCXXXV
MMDCCCXXXVI
MMDCCCXXXVII
MMDCCCXXXVIII
MMDCCCXXXIX
MMDCCCXL
MMDCCCXLI
MMDCCCXLII
MMDCCCXLIII
MMDCCCXLIV
MMDCCCXLV
MMDCCCXLVI
MMDCCCXLVII
MMDCCCXLVIII
MMDCCCXLIX
MMDCCCL
MMDCCCLI
MMDCCCLII
MMDCCCLIII
MMDCCCLIV
MMDCCCLV
MMDCCCLVI
MMDCCCLVII
MMDCCCLVIII
MMDCCCLIX
MMDCCCLX
MMDCCCLXI
MMDCCCLXII
MMDCCCLXIII
MMDCCCLXIV
MMDCCCLXV
MMDCCCLXVI
MMDCCCLXVII
MMDCCCLXVIII
MMDCCCLXIX
MMDCCCLXX
MMDCCCLXXI
MMDCCCLXXII
MMDCCCLXXIII
MMDCCCLXXIV
MMDCCCLXXV
MMDCCCLXXVI
MMDCCCLXXVII
MMDCCCLXXVIII
MMDCCCLXXIX
MMDCCCLXXX
MMDCCCLXXXI
MMDCCCLXXXII
MMDCCCLXXXIII
MMDCCCLXXXIV
MMDCCCLXXXV
MMDCCCLXXXVI
MMDCCCLXXXVII
MMDCCCLXXXVIII
MMDCCCLXXXIX
MMDCCCXC
MMDCCCXCI
MMDCCCXCII
MMDCCCXCIII
MMDCCCXCIV
MMDCCCXCV
MMDCCCXCVI
MMDCCCXCVII
MMDCCCXCVIII
MMDCCCXCIX
MMCM
MMCMI
MMCMII
MMCMIII
MMCMIV
MMCMV
MMCMVI
MMCMVII
MMCMVIII
MMCMIX
MMCMX
MMCMXI
MMCMXII
MMCMXIII
MMCMXIV
MMCMXV
MMCMXVI
MMCMXVII
MMCMXVIII
MMCMXIX
MMCMXX
MMCMXXI
MMCMXXII
MMCMXXIII
MMCMXXIV
MMCMXXV
MMCMXXVI
MMCMXXVII
MMCMXXVIII
MMCMXXIX
MMCMXXX
MMCMXXXI
MMCMXXXII
MMCMXXXIII
MMCMXXXIV
MMCMXXXV
MMCMXXXVI
MMCMXXXVII
MMCMXXXVIII
MMCMXXXIX
MMCMXL
MMCMXLI
MMCMXLII
MMCMXLIII
MMCMXLIV
MMCMXLV
MMCMXLVI
MMCMXLVII
MMCMXLVIII
MMCMXLIX
MMCML
MMCMLI
MMCMLII
MMCMLIII
MMCMLIV
MMCMLV
MMCMLVI
MMCMLVII
MMCMLVIII
MMCMLIX
MMCMLX
MMCMLXI
MMCMLXII
MMCMLXIII
MMCMLXIV
MMCMLXV
MMCMLXVI
MMCMLXVII
MMCMLXVIII
MMCMLXIX
MMCMLXX
MMCMLXXI
MMCMLXXII
MMCMLXXIII
MMCMLXXIV
MMCMLXXV
MMCMLXXVI
MMCMLXXVII
MMCMLXXVIII
MMCMLXXIX
MMCMLXXX
MMCMLXXXI
MMCMLXXXII
MMCMLXXXIII
MMCMLXXXIV
MMCMLXXXV
MMCMLXXXVI
MMCMLXXXVII
MMCMLXXXVIII
MMCMLXXXIX
MMCMXC
MMCMXCI
MMCMXCII
MMCMXCIII
MMCMXCIV
MMCMXCV
MMCMXCVI
MMCMXCVII
MMCMXCVIII
MMCMXCIX
MMM
MMMI
MMMII
MMMIII
MMMIV
MMMV
MMMVI
MMMVII
MMMVIII
MMMIX
MMMX
MMMXI
MMMXII
MMMXIII
MMMXIV
MMMXV
MMMXVI
MMMXVII
MMMXVIII
MMMXIX
MMMXX
MMMXXI
MMMXXII
MMMXXIII
MMMXXIV
MMMXXV
MMMXXVI
MMMXXVII
MMMXXVIII
MMMXXIX
MMMXXX
MMMXXXI
MMMXXXII
MMMXXXIII
MMMXXXIV
MMMXXXV
MMMXXXVI
MMMXXXVII
MMMXXXVIII
MMMXXXIX
MMMXL
MMMXLI
MMMXLII
MMMXLIII
MMMXLIV
MMMXLV
MMMXLVI
MMMXLVII
MMMXLVIII
MMMXLIX
MMML
MMMLI
MMMLII
MMMLIII
MMMLIV
MMMLV
MMMLVI
MMMLVII
MMMLVIII
MMMLIX
MMMLX
MMMLXI
MMMLXII
MMMLXIII
MMMLXIV
MMMLXV
MMMLXVI
MMMLXVII
MMMLXVIII
MMMLXIX
MMMLXX
MMMLXXI
MMMLXXII
MMMLXXIII
MMMLXXIV
MMMLXXV
MMMLXXVI
MMMLXXVII
MMMLXXVIII
MMMLXXIX
MMMLXXX
MMMLXXXI
MMMLXXXII
MMMLXXXIII
MMMLXXXIV
MMMLXXXV
MMMLXXXVI
MMMLXXXVII
MMMLXXXVIII
MMMLXXXIX
MMMXC
MMMXCI
MMMXCII
MMMXCIII
MMMXCIV
MMMXCV
MMMXCVI
MMMXCVII
MMMXCVIII
MMMXCIX
MMMC
MMMCI
MMMCII
MMMCIII
MMMCIV
MMMCV
MMMCVI
MMMCVII
MMMCVIII
MMMCIX
MMMCX
MMMCXI
MMMCXII
MMMCXIII
MMMCXIV
MMMCXV
MMMCXVI
MMMCXVII
MMMCXVIII
MMMCXIX
MMMCXX
MMMCXXI
MMMCXXII
MMMCXXIII
MMMCXXIV
MMMCXXV
MMMCXXVI
MMMCXXVII
MMMCXXVIII
MMMCXXIX
MMMCXXX
MMMCXXXI
MMMCXXXII
MMMCXXXIII
MMMCXXXIV
MMMCXXXV
MMMCXXXVI
MMMCXXXVII
MMMCXXXVIII
MMMCXXXIX
MMMCXL
MMMCXLI
MMMCXLII
MMMCXLIII
MMMCXLIV
MMMCXLV
MMMCXLVI
MMMCXLVII
MMMCXLVIII
MMMCXLIX
MMMCL
MMMCLI
MMMCLII
MMMCLIII
MMMCLIV
MMMCLV
MMMCLVI
MMMCLVII
MMMCLVIII
MMMCLIX
MMMCLX
MMMCLXI
MMMCLXII
MMMCLXIII
MMMCLXIV
MMMCLXV
MMMCLXVI
MMMCLXVII
MMMCLXVIII
MMMCLXIX
MMMCLXX
MMMCLXXI
MMMCLXXII
MMMCLXXIII
MMMCLXXIV
MMMCLXXV
MMMCLXXVI
MMMCLXXVII
MMMCLXXVIII
MMMCLXXIX
MMMCLXXX
MMMCLXXXI
MMMCLXXXII
MMMCLXXXIII
MMMCLXXXIV
MMMCLXXXV
MMMCLXXXVI
MMMCLXXXVII
MMMCLXXXVIII
MMMCLXXXIX
MMMCXC
MMMCXCI
MMMCXCII
MMMCXCIII
MMMCXCIV
MMMCXCV
MMMCXCVI
MMMCXCVII
MMMCXCVIII
MMMCXCIX
MMMCC
MMMCCI
MMMCCII
MMMCCIII
MMMCCIV
MMMCCV
MMMCCVI
MMMCCVII
MMMCCVIII
MMMCCIX
MMMCCX
MMMCCXI
MMMCCXII
MMMCCXIII
MMMCCXIV
MMMCCXV
MMMCCXVI
MMMCCXVII
MMMCCXVIII
MMMCCXIX
MMMCCXX
MMMCCXXI
MMMCCXXII
MMMCCXXIII
MMMCCXXIV
MMMCCXXV
MMMCCXXVI
MMMCCXXVII
MMMCCXXVIII
MMMCCXXIX
MMMCCXXX
MMMCCXXXI
MMMCCXXXII
MMMCCXXXIII
MMMCCXXXIV
MMMCCXXXV
MMMCCXXXVI
MMMCCXXXVII
MMMCCXXXVIII
MMMCCXXXIX
MMMCCXL
MMMCCXLI
MMMCCXLII
MMMCCXLIII
MMMCCXLIV
MMMCCXLV
MMMCCXLVI
MMMCCXLVII
MMMCCXLVIII
MMMCCXLIX
MMMCCL
MMMCCLI
MMMCCLII
MMMCCLIII
MMMCCLIV
MMMCCLV
MMMCCLVI
MMMCCLVII
MMMCCLVIII
MMMCCLIX
MMMCCLX
MMMCCLXI
MMMCCLXII
MMMCCLXIII
MMMCCLXIV
MMMCCLXV
MMMCCLXVI
MMMCCLXVII
MMMCCLXVIII
MMMCCLXIX
MMMCCLXX
MMMCCLXXI
MMMCCLXXII
MMMCCLXXIII
MMMCCLXXIV
MMMCCLXXV
MMMCCLXXVI
MMMCCLXXVII
MMMCCLXXVIII
MMMCCLXXIX
MMMCCLXXX
MMMCCLXXXI
MMMCCLXXXII
MMMCCLXXXIII
MMMCCLXXXIV
MMMCCLXXXV
MMMCCLXXXVI
MMMCCLXXXVII
MMMCCLXXXVIII
MMMCCLXXXIX
MMMCCXC
MMMCCXCI
MMMCCXCII
MMMCCXCIII
MMMCCXCIV
MMMCCXCV
MMMCCXCVI
MMMCCXCVII
MMMCCXCVIII
MMMCCXCIX
MMMCCC
MMMCCCI
MMMCCCII
MMMCCCIII
MMMCCCIV
MMMCCCV
MMMCCCVI
MMMCCCVII
MMMCCCVIII
MMMCCCIX
MMMCCCX
MMMCCCXI
MMMCCCXII
MMMCCCXIII
MMMCCCXIV
MMMCCCXV
MMMCCCXVI
MMMCCCXVII
MMMCCCXVIII
MMMCCCXIX
MMMCCCXX
MMMCCCXXI
MMMCCCXXII
MMMCCCXXIII
MMMCCCXXIV
MMMCCCXXV
MMMCCCXXVI
MMMCCCXXVII
MMMCCCXXVIII
MMMCCCXXIX
MMMCCCXXX
MMMCCCXXXI
MMMCCCXXXII
MMMCCCXXXIII
MMMCCCXXXIV
MMMCCCXXXV
MMMCCCXXXVI
MMMCCCXXXVII
MMMCCCXXXVIII
MMMCCCXXXIX
MMMCCCXL
MMMCCCXLI
MMMCCCXLII
MMMCCCXLIII
MMMCCCXLIV
MMMCCCXLV
MMMCCCXLVI
MMMCCCXLVII
MMMCCCXLVIII
MMMCCCXLIX
MMMCCCL
MMMCCCLI
MMMCCCLII
MMMCCCLIII
MMMCCCLIV
MMMCCCLV
MMMCCCLVI
MMMCCCLVII
MMMCCCLVIII
MMMCCCLIX
MMMCCCLX
MMMCCCLXI
MMMCCCLXII
MMMCCCLXIII
MMMCCCLXIV
MMMCCCLXV
MMMCCCLXVI
MMMCCCLXVII
MMMCCCLXVIII
MMMCCCLXIX
MMMCCCLXX
MMMCCCLXXI
MMMCCCLXXII
MMMCCCLXXIII
MMMCCCLXXIV
MMMCCCLXXV
MMMCCCLXXVI
MMMCCCLXXVII
MMMCCCLXXVIII
MMMCCCLXXIX
MMMCCCLXXX
MMMCCCLXXXI
MMMCCCLXXXII
MMMCCCLXXXIII
MMMCCCLXXXIV
MMMCCCLXXXV
MMMCCCLXXXVI
MMMCCCLXXXVII
MMMCCCLXXXVIII
MMMCCCLXXXIX
MMMCCCXC
MMMCCCXCI
MMMCCCXCII
MMMCCCXCIII
MMMCCCXCIV
MMMCCCXCV
MMMCCCXCVI
MMMCCCXCVII
MMMCCCXCVIII
MMMCCCXCIX
MMMCD
MMMCDI
MMMCDII
MMMCDIII
MMMCDIV
MMMCDV
MMMCDVI
MMMCDVII
MMMCDVIII
MMMCDIX
MMMCDX
MMMCDXI
MMMCDXII
MMMCDXIII
MMMCDXIV
MMMCDXV
MMMCDXVI
MMMCDXVII
MMMCDXVIII
MMMCDXIX
MMMCDXX
MMMCDXXI
MMMCDXXII
MMMCDXXIII
MMMCDXXIV
MMMCDXXV
MMMCDXXVI
MMMCDXXVII
MMMCDXXVIII
MMMCDXXIX
MMMCDXXX
MMMCDXXXI
MMMCDXXXII
MMMCDXXXIII
MMMCDXXXIV
MMMCDXXXV
MMMCDXXXVI
MMMCDXXXVII
MMMCDXXXVIII
MMMCDXXXIX
MMMCDXL
MMMCDXLI
MMMCDXLII
MMMCDXLIII
MMMCDXLIV
MMMCDXLV
MMMCDXLVI
MMMCDXLVII
MMMCDXLVIII
MMMCDXLIX
MMMCDL
MMMCDLI
MMMCDLII
MMMCDLIII
MMMCDLIV
MMMCDLV
MMMCDLVI
MMMCDLVII
MMMCDLVIII
MMMCDLIX
MMMCDLX
MMMCDLXI
MMMCDLXII
MMMCDLXIII
MMMCDLXIV
MMMCDLXV
MMMCDLXVI
MMMCDLXVII
MMMCDLXVIII
MMMCDLXIX
MMMCDLXX
MMMCDLXXI
MMMCDLXXII
MMMCDLXXIII
MMMCDLXXIV
MMMCDLXXV
MMMCDLXXVI
MMMCDLXXVII
MMMCDLXXVIII
MMMCDLXXIX
MMMCDLXXX
MMMCDLXXXI
MMMCDLXXXII
MMMCDLXXXIII
MMMCDLXXXIV
MMMCDLXXXV
MMMCDLXXXVI
MMMCDLXXXVII
MMMCDLXXXVIII
MMMCDLXXXIX
MMMCDXC
MMMCDXCI
MMMCDXCII
MMMCDXCIII
MMMCDXCIV
MMMCDXCV
MMMCDXCVI
MMMCDXCVII
MMMCDXCVIII
MMMCDXCIX
MMMD
MMMDI
MMMDII
MMMDIII
MMMDIV
MMMDV
MMMDVI
MMMDVII
MMMDVIII
MMMDIX
MMMDX
MMMDXI
MMMDXII
MMMDXIII
MMMDXIV
MMMDXV
MMMDXVI
MMMDXVII
MMMDXVIII
MMMDXIX
MMMDXX
MMMDXXI
MMMDXXII
MMMDXXIII
MMMDXXIV
MMMDXXV
MMMDXXVI
MMMDXXVII
MMMDXXVIII
MMMDXXIX
MMMDXXX
MMMDXXXI
MMMDXXXII
MMMDXXXIII
MMMDXXXIV
MMMDXXXV
MMMDXXXVI
MMMDXXXVII
MMMDXXXVIII
MMMDXXXIX
MMMDXL
MMMDXLI
MMMDXLII
MMMDXLIII
MMMDXLIV
MMMDXLV
MMMDXLVI
MMMDXLVII
MMMDXLVIII
MMMDXLIX
MMMDL
MMMDLI
MMMDLII
MMMDLIII
MMMDLIV
MMMDLV
MMMDLVI
MMMDLVII
MMMDLVIII
MMMDLIX
MMMDLX
MMMDLXI
MMMDLXII
MMMDLXIII
MMMDLXIV
MMMDLXV
MMMDLXVI
MMMDLXVII
MMMDLXVIII
MMMDLXIX
MMMDLXX
MMMDLXXI
MMMDLXXII
MMMDLXXIII
MMMDLXXIV
MMMDLXXV
MMMDLXXVI
MMMDLXXVII
MMMDLXXVIII
MMMDLXXIX
MMMDLXXX
MMMDLXXXI
MMMDLXXXII
MMMDLXXXIII
MMMDLXXXIV
MMMDLXXXV
MMMDLXXXVI
MMMDLXXXVII
MMMDLXXXVIII
MMMDLXXXIX
MMMDXC
MMMDXCI
MMMDXCII
MMMDXCIII
MMMDXCIV
MMMDXCV
MMMDXCVI
MMMDXCVII
MMMDXCVIII
MMMDXCIX
MMMDC
MMMDCI
MMMDCII
MMMDCIII
MMMDCIV
MMMDCV
MMMDCVI
MMMDCVII
MMMDCVIII
MMMDCIX
MMMDCX
MMMDCXI
MMMDCXII
MMMDCXIII
MMMDCXIV
MMMDCXV
MMMDCXVI
MMMDCXVII
MMMDCXVIII
MMMDCXIX
MMMDCXX
MMMDCXXI
MMMDCXXII
MMMDCXXIII
MMMDCXXIV
MMMDCXXV
MMMDCXXVI
MMMDCXXVII
MMMDCXXVIII
MMMDCXXIX
MMMDCXXX
MMMDCXXXI
MMMDCXXXII
MMMDCXXXIII
MMMDCXXXIV
MMMDCXXXV
MMMDCXXXVI
MMMDCXXXVII
MMMDCXXXVIII
MMMDCXXXIX
MMMDCXL
MMMDCXLI
MMMDCXLII
MMMDCXLIII
MMMDCXLIV
MMMDCXLV
MMMDCXLVI
MMMDCXLVII
MMMDCXLVIII
MMMDCXLIX
MMMDCL
MMMDCLI
MMMDCLII
MMMDCLIII
MMMDCLIV
MMMDCLV
MMMDCLVI
MMMDCLVII
MMMDCLVIII
MMMDCLIX
MMMDCLX
MMMDCLXI
MMMDCLXII
MMMDCLXIII
MMMDCLXIV
MMMDCLXV
MMMDCLXVI
MMMDCLXVII
MMMDCLXVIII
MMMDCLXIX
MMMDCLXX
MMMDCLXXI
MMMDCLXXII
MMMDCLXXIII
MMMDCLXXIV
MMMDCLXXV
MMMDCLXXVI
MMMDCLXXVII
MMMDCLXXVIII
MMMDCLXXIX
MMMDCLXXX
MMMDCLXXXI
MMMDCLXXXII
MMMDCLXXXIII
MMMDCLXXXIV
MMMDCLXXXV
MMMDCLXXXVI
MMMDCLXXXVII
MMMDCLXXXVIII
MMMDCLXXXIX
MMMDCXC
MMMDCXCI
MMMDCXCII
MMMDCXCIII
MMMDCXCIV
MMMDCXCV
MMMDCXCVI
MMMDCXCVII
MMMDCXCVIII
MMMDCXCIX
MMMDCC
MMMDCCI
MMMDCCII
MMMDCCIII
MMMDCCIV
MMMDCCV
MMMDCCVI
MMMDCCVII
MMMDCCVIII
MMMDCCIX
MMMDCCX
MMMDCCXI
MMMDCCXII
MMMDCCXIII
MMMDCCXIV
MMMDCCXV
MMMDCCXVI
MMMDCCXVII
MMMDCCXVIII
MMMDCCXIX
MMMDCCXX
MMMDCCXXI
MMMDCCXXII
MMMDCCXXIII
MMMDCCXXIV
MMMDCCXXV
MMMDCCXXVI
MMMDCCXXVII
MMMDCCXXVIII
MMMDCCXXIX
MMMDCCXXX
MMMDCCXXXI
MMMDCCXXXII
MMMDCCXXXIII
MMMDCCXXXIV
MMMDCCXXXV
MMMDCCXXXVI
MMMDCCXXXVII
MMMDCCXXXVIII
MMMDCCXXXIX
MMMDCCXL
MMMDCCXLI
MMMDCCXLII
MMMDCCXLIII
MMMDCCXLIV
MMMDCCXLV
MMMDCCXLVI
MMMDCCXLVII
MMMDCCXLVIII
MMMDCCXLIX
MMMDCCL
MMMDCCLI
MMMDCCLII
MMMDCCLIII
MMMDCCLIV
MMMDCCLV
MMMDCCLVI
MMMDCCLVII
MMMDCCLVIII
MMMDCCLIX
MMMDCCLX
MMMDCCLXI
MMMDCCLXII
MMMDCCLXIII
MMMDCCLXIV
MMMDCCLXV
MMMDCCLXVI
MMMDCCLXVII
MMMDCCLXVIII
MMMDCCLXIX
MMMDCCLXX
MMMDCCLXXI
MMMDCCLXXII
MMMDCCLXXIII
MMMDCCLXXIV
MMMDCCLXXV
MMMDCCLXXVI
MMMDCCLXXVII
MMMDCCLXXVIII
MMMDCCLXXIX
MMMDCCLXXX
MMMDCCLXXXI
MMMDCCLXXXII
MMMDCCLXXXIII
MMMDCCLXXXIV
MMMDCCLXXXV
MMMDCCLXXXVI
MMMDCCLXXXVII
MMMDCCLXXXVIII
MMMDCCLXXXIX
MMMDCCXC
MMMDCCXCI
MMMDCCXCII
MMMDCCXCIII
MMMDCCXCIV
MMMDCCXCV
MMMDCCXCVI
MMMDCCXCVII
MMMDCCXCVIII
MMMDCCXCIX
MMMDCCC
MMMDCCCI
MMMDCCCII
MMMDCCCIII
MMMDCCCIV
MMMDCCCV
MMMDCCCVI
MMMDCCCVII
MMMDCCCVIII
MMMDCCCIX
MMMDCCCX
MMMDCCCXI
MMMDCCCXII
MMMDCCCXIII
MMMDCCCXIV
MMMDCCCXV
MMMDCCCXVI
MMMDCCCXVII
MMMDCCCXVIII
MMMDCCCXIX
MMMDCCCXX
MMMDCCCXXI
MMMDCCCXXII
MMMDCCCXXIII
MMMDCCCXXIV
MMMDCCCXXV
MMMDCCCXXVI
MMMDCCCXXVII
MMMDCCCXXVIII
MMMDCCCXXIX
MMMDCCCXXX
MMMDCCCXXXI
MMMDCCCXXXII
MMMDCCCXXXIII
MMMDCCCXXXIV
MMMDCCCXXXV
MMMDCCCXXXVI
MMMDCCCXXXVII
MMMDCCCXXXVIII
MMMDCCCXXXIX
MMMDCCCXL
MMMDCCCXLI
MMMDCCCXLII
MMMDCCCXLIII
MMMDCCCXLIV
MMMDCCCXLV
MMMDCCCXLVI
MMMDCCCXLVII
MMMDCCCXLVIII
MMMDCCCXLIX
MMMDCCCL
MMMDCCCLI
MMMDCCCLII
MMMDCCCLIII
MMMDCCCLIV
MMMDCCCLV
MMMDCCCLVI
MMMDCCCLVII
MMMDCCCLVIII
MMMDCCCLIX
MMMDCCCLX
MMMDCCCLXI
MMMDCCCLXII
MMMDCCCLXIII
MMMDCCCLXIV
MMMDCCCLXV
MMMDCCCLXVI
MMMDCCCLXVII
MMMDCCCLXVIII
MMMDCCCLXIX
MMMDCCCLXX
MMMDCCCLXXI
MMMDCCCLXXII
MMMDCCCLXXIII
MMMDCCCLXXIV
MMMDCCCLXXV
MMMDCCCLXXVI
MMMDCCCLXXVII
MMMDCCCLXXVIII
MMMDCCCLXXIX
MMMDCCCLXXX
MMMDCCCLXXXI
MMMDCCCLXXXII
MMMDCCCLXXXIII
MMMDCCCLXXXIV
MMMDCCCLXXXV
MMMDCCCLXXXVI
MMMDCCCLXXXVII
MMMDCCCLXXXVIII
MMMDCCCLXXXIX
MMMDCCCXC
MMMDCCCXCI
MMMDCCCXCII
MMMDCCCXCIII
MMMDCCCXCIV
MMMDCCCXCV
MMMDCCCXCVI
MMMDCCCXCVII
MMMDCCCXCVIII
MMMDCCCXCIX
MMMCM
MMMCMI
MMMCMII
MMMCMIII
MMMCMIV
MMMCMV
MMMCMVI
MMMCMVII
MMMCMVIII
MMMCMIX
MMMCMX
MMMCMXI
MMMCMXII
MMMCMXIII
MMMCMXIV
MMMCMXV
MMMCMXVI
MMMCMXVII
MMMCMXVIII
MMMCMXIX
MMMCMXX
MMMCMXXI
MMMCMXXII
MMMCMXXIII
MMMCMXXIV
MMMCMXXV
MMMCMXXVI
MMMCMXXVII
MMMCMXXVIII
MMMCMXXIX
MMMCMXXX
MMMCMXXXI
MMMCMXXXII
MMMCMXXXIII
MMMCMXXXIV
MMMCMXXXV
MMMCMXXXVI
MMMCMXXXVII
MMMCMXXXVIII
MMMCMXXXIX
MMMCMXL
MMMCMXLI
MMMCMXLII
MMMCMXLIII
MMMCMXLIV
MMMCMXLV
MMMCMXLVI
MMMCMXLVII
MMMCMXLVIII
MMMCMXLIX
MMMCML
MMMCMLI
MMMCMLII
MMMCMLIII
MMMCMLIV
MMMCMLV
MMMCMLVI
MMMCMLVII
MMMCMLVIII
MMMCMLIX
MMMCMLX
MMMCMLXI
MMMCMLXII
MMMCMLXIII
MMMCMLXIV
MMMCMLXV
MMMCMLXVI
MMMCMLXVII
MMMCMLXVIII
MMMCMLXIX
MMMCMLXX
MMMCMLXXI
MMMCMLXXII
MMMCMLXXIII
MMMCMLXXIV
MMMCMLXXV
MMMCMLXXVI
MMMCMLXXVII
MMMCMLXXVIII
MMMCMLXXIX
MMMCMLXXX
MMMCMLXXXI
MMMCMLXXXII
MMMCMLXXXIII
MMMCMLXXXIV
MMMCMLXXXV
MMMCMLXXXVI
MMMCMLXXXVII
MMMCMLXXXVIII
MMMCMLXXXIX
MMMCMXC
MMMCMXCI
MMMCMXCII
MMMCMXCIII
MMMCMXCIV
MMMCMXCV
MMMCMXCVI
MMMCMXCVII
MMMCMXCVIII
MMMCMXCIX

The table is a complete definition of the function, but such definition is akin to knowledge without wisdom. It's trivial to use a simple composition rule and smaller tables which can be made equal to the former table, and it's necessary for using this approach with greater and more complex problems.

The obvious way to simplify this single large table is with two smaller tables:

four-by-ten table of bigger numbers
CCCCCCCDDDCDCCDCCCCMM
MCMCCMCCCMCDMDMDCMDCCMDCCCMCMMM
MMCMMCCMMCCCMMCDMMDMMDCMMDCCMMDCCCMMCMMMM
MMMCMMMCCMMMCCCMMMCDMMMDMMMDCMMMDCCMMMDCCCMMMCM
ten-by-ten table of smaller numbers
IIIIIIIVVVIVIIVIIIIXX
XIXIIXIIIXIVXVXVIXVIIXVIIIXIXXX
XXIXXIIXXIIIXXIVXXVXXVIXXVIIXXVIIIXXIXXXX
XXXIXXXIIXXXIIIXXXIVXXXVXXXVIXXXVIIXXXVIIIXXXIXXL
XLIXLIIXLIIIXLIVXLVXLVIXLVIIXLVIIIXLIXL
LILIILIIILIVLVLVILVIILVIIILIXLX
LXILXIILXIIILXIVLXVLXVILXVIILXVIIILXIXLXX
LXXILXXIILXXIIILXXIVLXXVLXXVILXXVIILXXVIIILXXIXLXXX
LXXXILXXXIILXXXIIILXXXIVLXXXVLXXXVILXXXVIILXXXVIIILXXXIXXC
XCIXCIIXCIIIXCIVXCVXCVIXCVIIXCVIIIXCIXC

The domain of the former is one-to-thirty-nine and of the latter is one-to-one-hundred. The largest value in the former table is seven letters long, and the largest value in the latter table is eight.

The composition rule is itself also easily expressed as a table:

Let B be the input divided by one hundred, rounding down.
Let S be the input modulo one hundred.
Index the abstract table accordingly.

0...
0S
...BB+S

In the case where B be zero, only the table of smaller numbers be used, indexed by S.
In the case where S be zero, only that table of bigger numbers be used, indexed by B.
In the other case, both be used, with their results concatenated.
The case in which both be zero is impossible due to the domain not including zero.

These two tables and their composition rule can be proven correct trivially, merely by comparing the results for each value of the domain with the larger and complete table; programming this so is thus equivalent to intelligently-guided compression. Analyzing these tables makes clear how their ranges are nearly-disjoint, and can thus be encoded more efficiently, alongside other details; importantly, such a result is evidence that this is a particularly good and natural segmentation of this problem. The range of values in that former table are C, D, and M; those of the latter are I, V, X, L, and C.

That larger table is always suspect, as a single error within is damning. This new approach reduces manually checking one below four thousand entries to checking a mere one hundred and thirty-nine and the validity of the rule. The table of bigger numbers can be further reduced trivially, by noticing the predictable repetition of the letter M, but I don't find the added complexity of another rule to be worthwhile in that; I'm much more interested in reducing the size of the table of smaller numbers and I believe it to be better to have fewer, larger tables using simple rules, than the alternation.

Simply splitting symmetrically shows simple similarities:

      I LI
II LII
III LIII
IV LIV
V LV
VI LVI
VII LVII
VIII LVIII
IX LIX
X LX
XI LXI
XII LXII
XIII LXIII
XIV LXIV
XV LXV
XVI LXVI
XVII LXVII
XVIII LXVIII
XIX LXIX
XX LXX
XXI LXXI
XXII LXXII
XXIII LXXIII
XXIV LXXIV
XXV LXXV
XXVI LXXVI
XXVII LXXVII
XXVIII LXXVIII
XXIX LXXIX
XXX LXXX
XXXI LXXXI
XXXII LXXXII
XXXIII LXXXIII
XXXIV LXXXIV
XXXV LXXXV
XXXVI LXXXVI
XXXVII LXXXVII
XXXVIII LXXXVIII
XXXIX LXXXIX
XL XC
XLI XCI
XLII XCII
XLIII XCIII
XLIV XCIV
XLV XCV
XLVI XCVI
XLVII XCVII
XLVIII XCVIII
XLIX XCIX
L C

The first half of that table contains no instances of the letter C, and the latter half only does so in the last eleven entries, but the position of the letter L in the latter half is consistent. It's clear this table's size could be halved, by another simple composition rule. It's also obvious that last entry is unused even by the original composition rule, but it makes this symmetry more obvious:

five-by-ten table partially representing the table of smaller numbers
IIIIIIIVVVIVIIVIIIIXX
XIXIIXIIIXIVXVXVIXVIIXVIIIXIXXX
XXIXXIIXXIIIXXIVXXVXXVIXXVIIXXVIIIXXIXXXX
XXXIXXXIIXXXIIIXXXIVXXXVXXXVIXXXVIIXXXVIIIXXXIXX?
X?IX?IIX?IIIX?IVX?VX?VIX?VIIX?VIIIX?IX?

The composition rule will be first expressed without tables:

Let I be the the index modulo fifty.
If the index be in the former half, let ? be the letter L.
If the index be in the latter half, let ? be the letter C.
Return the contents of the table indexed by I; the index of zero will result in a ?.
If the index be in the latter half, but not the final eleven, append a letter L to the result.

Sans the division, this can nicely be expressed with the following tables; an additional composition rule can reduce one of the tables in size from one hundred to two, and from one hundred to fifty, as determining which half can be done by index division by fifty, and appending an L done through using a table with fifty entries, use thereof determined by that other, and indexed by index modulo fifty:

four-by-two table mapping the former half
II
VV
XX
?L
four-by-two table mapping the latter half
II
VV
XX
?C
five-by-ten table of positions for the letter L to be appended, with blanks represented as N
LLLLLLLLLL
LLLLLLLLLL
LLLLLLLLLL
LLLLLLLLLN
NNNNNNNNNN
two table of indications as to whether the index be in the former (F) or latter (L) half
FL

While this could halve the number of entries to check, in comparison to the earlier table of smaller numbers, it's not necessarily easier; it's better to check the earlier table, and then to check that this newer representation be equivalent. Importantly, modifying this table requires no checking but with that table which it represents, thus checking one hundred entries and not nearly four thousand.

A Latin book I'm reading uses CCCC instead of CD and DCCCC instead of CM. These changes are easy to make by modifying the corresponding table entries, and this is an advantage of programming this way:

four-by-ten table of bigger numbers with modifications
CCCCCCCCCCDDCDCCDCCCDCCCCM
MCMCCMCCCMCCCCMDMDCMDCCMDCCCMDCCCCMM
MMCMMCCMMCCCMMCCCCMMDMMDCMMDCCMMDCCCMMDCCCCMMM
MMMCMMMCCMMMCCCMMMCCCCMMMDMMMDCMMMDCCMMMDCCCMMMDCCCC

Importantly, the largest value in this table of bigger numbers is now eight letters long, not seven. Furthermore, the largest Roman numeral becomes sixteen letters long, not fifteen, with the addition.

It's very important to recalculate such information in the cases in which it could change.

These changes can be checked for correctness quite trivially by comparing only the changed elements:

CCCCCD
MCCCCMCD
MMCCCCMMCD
MMMCCCCMMMCD
DCCCCCM
MDCCCCMCM
MMDCCCCMMCM
MMMDCCCCMMMCM

An issue with compressing these tables well is adding special cases. I've seen an irregular form of eighteen, XIIX rather than XVIII, which would be interesting to add. However, changing the table of smaller numbers wouldn't only influence numbers ending in eighteen, but those ending in sixty-eight. The twenty-second Roman Legion would apparently write twenty-two as IIXX, and it certainly shouldn't apply to any other number ending in twenty-two. It would be trivial to store such exceptions within the full table, but that defeats my purpose in optimizing it; the solution is to have a sparse table hold these rare exceptions; a reasonably short such table needs no special mechanisms, linear search would work without issue. It would also be nice if this program would return N, or NIHIL, for zero.

It's particularly stupid to extend the domain of a function through exceptions alone.

It's best to extend the domains of the two tables to include zero, as a blank value, and this allows for greatly simplifying the composition rule, which truly has no place being represented as a table:

B+S

Domain extended, it's also possible to improve the compression of the table of smaller numbers; with a granularity of ten made feasible, the fifty-entry table can be reduced to ten entries, though that two-entry table would be extended to ten. These would be indexed by dividing the index by ten; this lone division serves to index either table equally well; the tables could even be combined for such:

ten table of positions for the letter L to be appended, with blanks represented as N
NNNNNLLLLN
ten table of indications as to whether the index be in the former (F) or latter (L) half
FFFFFLLLLL

That final result is a very simple program which indexes four tables, and all computation happens in manipulating the indices or in combining the intermediate results into the final answer. There's no need for the program to operate in any particular order, either; the value slots of the final answer can be decided by the worst case, by the longest result, meaning the value of each slot can be given independently, and an additional composition rule could normalize it to result in the proper answer.

That most efficient representation of the tables could be determined mechanically. For the table of bigger numbers, two bits suffice to hold one letter, and seven or eight could be stored easily, with that fourth potential letter used to indicate blanks. The smaller table of smaller numbers could be represented with two bits for each letter, and the length of the entry with three bits. Those other two tables could be combined with each other, or with another table. There are possibilities there.

Rather than represent code as data, it's better to eliminate the code entirely, I've grown to think. A table can be modified while a machine uses it, without any issue whatsoever; a special environment could help in this, but merely seeing the tables of passive data is as interactive as anything else.

This style is trivial to implement in most any language, and makes it easy to write complex programs in machine code. As the basis of a programming tool, a program to generate machine code could use a similar approach and exhaustively list different fragments implementing indexing with various units.

I was satisfied with this, but it occurred to me the inverse problem is also interesting, converting from the Roman numeral representation to numbers. This is again trivial with the full table, merely requiring a search, but my current approach doesn't support such a simple search; a composition rule is easily added for this, however. The typical approach to the problem would be called ``parsing'', which disgusts me, and requires encoding some model of understanding; this is unnecessary. Analysis has shown the ranges of the tables of bigger and smaller numbers are nearly-disjoint, and conversion can occur based on splitting the input when a letter from the latter table is found, to then search.

While this works in all cases, it's not clear that it would avoid error. The composition rule isn't yet proven, and the domain is extremely large. However, the other composition rules have been shown to be correct, so they may be used for this. A valid result will result in the same output if given to the composition rule for conversion to the Roman numeral representation; checking for equivalency between these suffices to prove the result this rule gives correct or incorrect. Lastly, the sparse exceptions table poses an issue, but it's trivial to search that first, and any result it gives will agree with the other composition rules, as they similarly treat it specially. Particularly, if this weren't done, the exceptions would prove exceptions to the equivalency test, giving different forms.

Follows is the composition rule:

Search the sparse exceptions table, and return any match.
Search the input for the first occurence of I, V, X, or L, and split the input in twain at the seam.
Search that table of bigger numbers for the former half, and return the index of the match.
Search the table of smaller numbers for the latter half, and return the index of the match.
If either search fails, the input be invalid.
Let S be the sum of the former index, multiplied by one hundred, with the latter index.
Convert S to a Roman numeral and ensure it be equal to the input, lest the input be invalid.
Otherwise, S be the result.

Searching the table of smaller numbers can be done by checking whether the latter half begins with L or not, later ignoring the first letter and adding fifty to the resulting index in this case, and by permitting that ? to match either of L or C, adding fifty to the resulting index in the latter case.

There are alternative methods for encoding such things, but this suffices; the length of the longest Roman numeral places an upper bound on the length of the input, giving this domain a clear boundary. The general solution, simply enumerating the possibilities and matching against them, works well for such repetitive and unstructured data. I see no better way to test than checking every combination.

Taking advantage of such automated, exhaustive proof provides more time for when this be infeasible.

I'll be removing this sentence once I've an Ada version of this simple program available. Here is the Common Lisp program.

Tabular programming is applicable to many problems, and I want to begin heavily using it. I believe most programs likely could be and should be written in this style. In writing this, I sparsely used my machines; sans generating that initial full table and checking my proofs exhaustively, I found it mostly unnecessary, and it guided none of my thinking about the problem, or how to approach it. The translation of integers to ordinal or cardinal Roman numbers will make a lovely demonstration, next.