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)

function main(input) {
  const inputList = input.split(/\s/).map(inp => formatNum(inp));
  const A = inputList[0];
  const B = inputList[1];
  const SET_NUM = 2019;
  const thresholdValue = Math.ceil(Math.sqrt(SET_NUM));
  var result = 0;
  if ((Math.floor(A % SET_NUM) === 0) || (Math.floor(A / SET_NUM) < Math.floor(B / SET_NUM))) {
    result = 0;
  } else if (A <= thresholdValue && thresholdValue < B) {
    const C = (thresholdValue * (thresholdValue + 1)) % SET_NUM;
    const D = (A * (A + 1)) % SET_NUM;
    if (C < D) {
      result = C;
    } else {
      result = D
    }
  } else {
    result = (A * (A + 1)) % SET_NUM;
  }
  console.log(result);
};

// 文字列を数値に変換
function formatNum(str) {
  return Number(str);
};

main(require("fs").readFileSync("/dev/stdin", "utf8"));