Problem:
Score : 300 points

Problem Statement

You are given two non-negative integers L and R.
We will choose two integers i and j such that L \leq i < j \leq R.
Find the minimum possible value of (i \times j) \mbox{ mod } 2019.

Constraints

All values in input are integers.

0 \leq L < R \leq 2 \times 10^9

Input

Input is given from Standard Input in the following format:

L R

Output

Print the minimum possible value of (i \times j) \mbox{ mod } 2019 when i and j are chosen under the given condition.

Sample Input 1

2020 2040

Sample Output 1

2

When (i, j) = (2020, 2021), (i \times j) \mbox{ mod } 2019 = 2.

Sample Input 2

4 5

Sample Output 2

20

We have only one choice: (i, j) = (4, 5).

Solution in JavaScript (node.js v5.12) (judge verdict: Wrong Answer)

"use strict"
function main(arg) {
    var data = arg.trim().split("\n")[0].split(' ').map(Number)
    var L = data[0]
    var R = data[1]
    var _L = (L % 2019)
    var _R = (R % 2019)
    // console.log(_R)

    if (_L < _R) {
        console.log((L * (L + 1)) % 2019)
        // console.log("1")
    } else {
        if (_R === 0) {
            console.log((L * R) % 2019)
            // console.log("2")
        } else {
            console.log((R * (R + 1)) % 2019)
            // console.log("3")
        }
    }

    // if (L % 2019 === 0) {
    //     console.log((L * (L + 1)) % 2019)
    // } else if (L % 2019 < R % 2019) {
    //     console.log((L * (L + 1)) % 2019)
    // } else {
    //     if (R % 2019 === 0) {
    //         console.log((L * R) % 2019)
    //     } else {
    //         console.log((R * (R + 1)) % 2019)
    //     }
    // }
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));