(define (f ns)
(define (aux m1 m2 ns)
(if (null? ns)
m2
(let ((n (car ns)) (ns (cdr ns)))
(cond
((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 '()))
KGRlZmluZSAoZiBucykKICAoZGVmaW5lIChhdXggbTEgbTIgbnMpCiAgICAoaWYgKG51bGw/IG5zKQogICAgICAgIG0yCiAgICAgICAgKGxldCAoKG4gKGNhciBucykpIChucyAoY2RyIG5zKSkpCiAgICAgICAgICAoY29uZAogICAgICAgICAgICgobm90IG0xKSAoYXV4IG4gI2YgbnMpKQogICAgICAgICAgICgob3IgKGFuZCAobm90IG0yKSAoPCBtMSBuKSkgKDwgbTEgbiBtMikpIChhdXggbTEgbiBucykpCiAgICAgICAgICAgKChvciAoYW5kIChub3QgbTIpICg8IG4gbTEpKSAoPCBuIG0xIG0yKSkgKGF1eCBuIG0xIG5zKSkKICAgICAgICAgICAoZWxzZSAoYXV4IG0xIG0yIG5zKSkpKSkpCiAgKGF1eCAjZiAjZiBucykpCihwcmludCAoZiAnKDQgNSAxIDcgMSAyIDggOSAyIDcpKSkKKHByaW50IChmICcoMSAxIDEpKSkKKHByaW50IChmICcoMSkpKQoocHJpbnQgKGYgJygpKSkK