(define (System.out.println x) (begin (display x) (newline) ) ) (define (ver2num x) (let loop( (i 0) (foo 0) (bar '()) ) (if (= i (length x)) (if (< foo 10) (string->number (apply string-append (reverse (cons (string-append "00" (number->string foo)) bar)))) (if (< foo 100) (string->number (apply string-append (reverse (cons (string-append "0" (number->string foo)) bar)))) (string->number (apply string-append (reverse (cons (number->string foo) bar)))) ) ) (if (string=? (list->string (list (list-ref x i))) ".") (if (< foo 10) (loop (+ i 1) 0 (cons (string-append "00" (number->string foo)) bar)) (if (< foo 100) (loop (+ i 1) 0 (cons (string-append "0" (number->string foo)) bar)) (loop (+ i 1) 0 (cons (number->string foo) bar)) ) ) (loop (+ i 1) (+ (* foo 10) (string->number (list->string (list (list-ref x i))))) bar) ) ) ) ) (let ( (X (string->list (symbol->string (read)))) (Y (string->list (symbol->string (read)))) ) (if (>= (ver2num X) (ver2num Y)) (System.out.println "YES") (System.out.println "NO") ) )