import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int L = Integer.parseInt(sc.next());
        int R = Integer.parseInt(sc.next());

        sc.close();
        
        //R-Lが2019"以上"の場合は2019の倍数が含まれる
        if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        }

        long mod2019;
        //は2019で割ったあまりだから最大でも2018
        long min = 2018;

        for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        }

        System.out.println(min);
    }

} import java.util.Scanner; Scanner java.util public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int L = Integer.parseInt(sc.next());
        int R = Integer.parseInt(sc.next());

        sc.close();
        
        //R-Lが2019"以上"の場合は2019の倍数が含まれる
        if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        }

        long mod2019;
        //は2019で割ったあまりだから最大でも2018
        long min = 2018;

        for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        }

        System.out.println(min);
    }

} Main public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int L = Integer.parseInt(sc.next());
        int R = Integer.parseInt(sc.next());

        sc.close();
        
        //R-Lが2019"以上"の場合は2019の倍数が含まれる
        if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        }

        long mod2019;
        //は2019で割ったあまりだから最大でも2018
        long min = 2018;

        for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        }

        System.out.println(min);
    } main {

        Scanner sc = new Scanner(System.in);

        int L = Integer.parseInt(sc.next());
        int R = Integer.parseInt(sc.next());

        sc.close();
        
        //R-Lが2019"以上"の場合は2019の倍数が含まれる
        if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        }

        long mod2019;
        //は2019で割ったあまりだから最大でも2018
        long min = 2018;

        for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        }

        System.out.println(min);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int L = Integer.parseInt(sc.next()); L Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int R = Integer.parseInt(sc.next()); R Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc sc.close() sc.close sc if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        } R - L >= 2019 R - L R L 2019 {

            System.out.println(0);
            System.exit(0);
        } System.out.println(0) System.out.println System.out System System.out 0 System.exit(0) System.exit System 0 long mod2019; mod2019 long min = 2018; min 2018 for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        } long i = L; long i = L; i L i < R i R i++ i++ i {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        } {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        } for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            } long j = i+1; long j = i+1; j i+1 i 1 j <= R j R j++ j++ j {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            } {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            } mod2019 = (i*j)%2019 mod2019 (i*j)%2019 (i*j) i j 2019 if (min > mod2019) {

                    min = mod2019;
                } min > mod2019 min mod2019 {

                    min = mod2019;
                } min = mod2019 min mod2019 System.out.println(min) System.out.println System.out System System.out min String[] args args public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int L = Integer.parseInt(sc.next());
        int R = Integer.parseInt(sc.next());

        sc.close();
        
        //R-Lが2019"以上"の場合は2019の倍数が含まれる
        if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        }

        long mod2019;
        //は2019で割ったあまりだから最大でも2018
        long min = 2018;

        for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        }

        System.out.println(min);
    }

} public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int L = Integer.parseInt(sc.next());
        int R = Integer.parseInt(sc.next());

        sc.close();
        
        //R-Lが2019"以上"の場合は2019の倍数が含まれる
        if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        }

        long mod2019;
        //は2019で割ったあまりだから最大でも2018
        long min = 2018;

        for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        }

        System.out.println(min);
    }

} Main
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int L = Integer.parseInt(sc.next());
        int R = Integer.parseInt(sc.next());

        sc.close();
        
        //R-Lが2019"以上"の場合は2019の倍数が含まれる
        if (R - L >= 2019) {

            System.out.println(0);
            System.exit(0);
        }

        long mod2019;
        //は2019で割ったあまりだから最大でも2018
        long min = 2018;

        for (long i = L; i < R; i++) {

            for (long j = i+1; j <= R; j++) {

                mod2019 = (i*j)%2019;

                if (min > mod2019) {

                    min = mod2019;
                }
                
                //2019は素数だから以下の記述は無意味、バグの発生原因になる
//                if (min == 0) {
//
//                    break;
//                }
            }

//            if (min == 0) {
//
//                break;
//            }
        }

        System.out.println(min);
    }

}