import java.util.Scanner;

// https://atcoder.jp/contests/abc161/tasks/abc161_c
public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		sc.close();

		long[] ansArray =  {n,n,n};

		n = n%k;
		long ans = n;
		long ans1 = n;
		long ans2 = n;
		while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		}


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

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		sc.close();

		long[] ansArray =  {n,n,n};

		n = n%k;
		long ans = n;
		long ans1 = n;
		long ans2 = n;
		while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		}


	}
} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		sc.close();

		long[] ansArray =  {n,n,n};

		n = n%k;
		long ans = n;
		long ans1 = n;
		long ans2 = n;
		while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		}


	} main {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		sc.close();

		long[] ansArray =  {n,n,n};

		n = n%k;
		long ans = n;
		long ans1 = n;
		long ans2 = n;
		while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		}


	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long n = sc.nextLong(); n sc.nextLong() sc.nextLong sc long k = sc.nextLong(); k sc.nextLong() sc.nextLong sc sc.close() sc.close sc long[] ansArray =  {n,n,n}; ansArray {n,n,n} n n n n = n%k n n%k n k long ans = n; ans n long ans1 = n; ans1 n long ans2 = n; ans2 n while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		} true {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		} ansArray[2] = Math.abs(ansArray[1] - k) ansArray[2] ansArray 2 Math.abs(ansArray[1] - k) Math.abs Math ansArray[1] - k ansArray[1] ansArray 1 k ans = Math.abs(ans - k) ans Math.abs(ans - k) Math.abs Math ans - k ans k ans1 = Math.abs(ans - k) ans1 Math.abs(ans - k) Math.abs Math ans - k ans k ans2 = Math.abs(ans1 - k) ans2 Math.abs(ans1 - k) Math.abs Math ans1 - k ans1 k if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			} ans==ans2 ans ans2 {
				System.out.println(Math.min(ans1, ans2));
				return;
			} System.out.println(Math.min(ans1, ans2)) System.out.println System.out System System.out Math.min(ans1, ans2) Math.min Math ans1 ans2 return; String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		sc.close();

		long[] ansArray =  {n,n,n};

		n = n%k;
		long ans = n;
		long ans1 = n;
		long ans2 = n;
		while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		}


	}
} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		sc.close();

		long[] ansArray =  {n,n,n};

		n = n%k;
		long ans = n;
		long ans1 = n;
		long ans2 = n;
		while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		}


	}
} Main
import java.util.Scanner;

// https://atcoder.jp/contests/abc161/tasks/abc161_c
public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		sc.close();

		long[] ansArray =  {n,n,n};

		n = n%k;
		long ans = n;
		long ans1 = n;
		long ans2 = n;
		while(true) {
			ansArray[2] = Math.abs(ansArray[1] - k);

			ans = Math.abs(ans - k);
			ans1 = Math.abs(ans - k);
			ans2 = Math.abs(ans1 - k);

			if(ans==ans2) {
				System.out.println(Math.min(ans1, ans2));
				return;
			}
		}


	}
}
