(define (f ns)
(define (aux m1 m2 ns)
(let* ((n (and (not (null? ns)) (car ns)))
(ns (and n (cdr ns))))
(cond
((not n) m2)
((not m1) (aux n #f ns))
((or (and (not m2) (< m1 n)) (< m1 n m2)) (aux m1 n ns))
((or (and (not m2) (< n m1)) (< n m1 m2)) (aux n m1 ns))
(else (aux m1 m2 ns)))))
(aux #f #f ns))
(print (f '(4 5 1 7 1 2 8 9 2 7)))
(print (f '(1 1 1)))
(print (f '(1)))
(print (f '()))
KGRlZmluZSAoZiBucykKICAoZGVmaW5lIChhdXggbTEgbTIgbnMpCiAgICAobGV0KiAoKG4gKGFuZCAobm90IChudWxsPyBucykpIChjYXIgbnMpKSkKICAgICAgICAgICAobnMgKGFuZCBuIChjZHIgbnMpKSkpCiAgICAgIChjb25kCiAgICAgICAoKG5vdCBuKSBtMikKICAgICAgICgobm90IG0xKSAoYXV4IG4gI2YgbnMpKQogICAgICAgKChvciAoYW5kIChub3QgbTIpICg8IG0xIG4pKSAoPCBtMSBuIG0yKSkgKGF1eCBtMSBuIG5zKSkKICAgICAgICgob3IgKGFuZCAobm90IG0yKSAoPCBuIG0xKSkgKDwgbiBtMSBtMikpIChhdXggbiBtMSBucykpCiAgICAgICAoZWxzZSAoYXV4IG0xIG0yIG5zKSkpKSkKICAoYXV4ICNmICNmIG5zKSkKKHByaW50IChmICcoNCA1IDEgNyAxIDIgOCA5IDIgNykpKQoocHJpbnQgKGYgJygxIDEgMSkpKQoocHJpbnQgKGYgJygxKSkpCihwcmludCAoZiAnKCkpKQo=