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