removex'Consxxsremove[Ite][True][Ite]!EQx'xx'ConsxxsremovexNilNilminsortConsxxsappminxxsConsxxsminsortNilNilappminminConsxxsxs'appmin[Ite][True][Ite]<xminminConsxxsxs'appminminNilxsConsminminsortremoveminxsnotEmptyConsxxsTruenotEmptyNilFalsegoalxsminsortxs!EQSxSy!EQxy!EQ0SyFalse!EQSx0False!EQ00True<SxSy<xy<0SyTrue<x0Falseremove[Ite][True][Ite]Falsex'ConsxxsConsxremovex'xsappmin[Ite][True][Ite]TrueminConsxxsxs'appminxxsxs'remove[Ite][True][Ite]Truex'Consxxsxsappmin[Ite][True][Ite]FalseminConsxxsxs'appminminxsxs'minsort1remove[Ite][True][Ite]3True0Nil0appmin3!EQ2<2S1Cons2appmin[Ite][True][Ite]400remove2notEmpty1goal1False0INNERMOST