import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Long N = input.nextLong();
        Long K = input.nextLong();
        long ans;

        if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        }
        System.out.println(ans);
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Long N = input.nextLong();
        Long K = input.nextLong();
        long ans;

        if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        }
        System.out.println(ans);
    }
} Main public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Long N = input.nextLong();
        Long K = input.nextLong();
        long ans;

        if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        }
        System.out.println(ans);
    } main {
        Scanner input = new Scanner(System.in);
        Long N = input.nextLong();
        Long K = input.nextLong();
        long ans;

        if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        }
        System.out.println(ans);
    } Scanner input = new Scanner(System.in); input new Scanner(System.in) Long N = input.nextLong(); N input.nextLong() input.nextLong input Long K = input.nextLong(); K input.nextLong() input.nextLong input long ans; ans if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        } N % K == 0 N % K N K 0 {
            ans = 0;
        } ans = 0 ans 0 {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        } ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K)) ans ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K)) ((N % K) <= (K / 2)) (N % K) N K (K / 2) K 2 (N % K) N K (K - (N % K)) K (N % K) N K System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Long N = input.nextLong();
        Long K = input.nextLong();
        long ans;

        if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        }
        System.out.println(ans);
    }
} public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Long N = input.nextLong();
        Long K = input.nextLong();
        long ans;

        if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        }
        System.out.println(ans);
    }
} Main
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Long N = input.nextLong();
        Long K = input.nextLong();
        long ans;

        if (N % K == 0) {
            ans = 0;
        } else {
            ans = ((N % K) <= (K / 2)) ? (N % K) : (K - (N % K));
        }
        System.out.println(ans);
    }
}
