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 (Python):
import queue

"""
N = int(input())



A = []
for i in range(N):
	A.append(int(input()))

print(A)

"""
(N,M) = (int(i) for i in input().split(" "))

m = 3000
if M-N >= 2019:
	print(0)
else:
	for i in range(N,M):
		for j in range(i+1,M+1):
			k=i*j
			k%=2019
			if k < m:
				m=k
	print(m)

Solution (Python):
L, R = map(int, input().split())
intnumber = []
for i in range(L, min(R+1, L+2019)):
    intnumber.append(i%2019)

intnumber.sort()
ans = 2019
for i in range(len(intnumber)):
    for j in range(i+1, len(intnumber)):
        ans = min(ans, (intnumber[i]*intnumber[j])%2019)

print(ans)

Solution (Python):
import sys

stdin = sys.stdin

ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
ns = lambda: stdin.readline().rstrip()  

l, r = na()
if r//2019*2019 >= l:
    print(0)
else:
    mn = 9999999
    for i in range(l, r+1):
        for j in range(i+1, r+1):
            mn = min(mn, i*j%2019)
    print(mn)

Solution (Python):
l, r = list(map(int, input().split()))
ans = 10 ** 10
for i in range(l, min(l + 2019, r)):
    for j in range(l + 1, min(l + 2019, r) + 1):
        ans = min(ans, i * j % 2019)
print(ans)