minsortConsxxsappminxxsConsxxsminsortNilNilappminminConsxxsxs'appmin[Ite][True][Ite]<xminminConsxxsxs'appminminNilxsConsminminsortremoveminxsnotEmptyConsxxsTruenotEmptyNilFalseremovex'Consxxsremove[Ite]!EQx'xx'Consxxs!EQSxSy!EQxy!EQ0SyFalse!EQSx0False!EQ00True<SxSy<xy<0SyTrue<x0Falseremove[Ite]Falsex'ConsxxsConsxremovex'xsappmin[Ite][True][Ite]TrueminConsxxsxs'appminxxsxs'remove[Ite]Truex'Consxxsxsappmin[Ite][True][Ite]FalseminConsxxsxs'appminminxsxs'minsort1True0Nil0appmin3remove[Ite]3!EQ2<2S1Cons2appmin[Ite][True][Ite]400remove2notEmpty1False0INNERMOST