import java.util.Scanner;

class Main{

	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long K = sc.nextLong();

		long ans = 0;

		if(N>K){
			long x = N / K;
			long ans1 = N - (K * x);
			long ans2 = ((x + 1) * K) - N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else if(N<K){
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else{
			ans = 0;
		}

		System.out.println(ans);
		// System.out.println(S.toString());

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

	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long K = sc.nextLong();

		long ans = 0;

		if(N>K){
			long x = N / K;
			long ans1 = N - (K * x);
			long ans2 = ((x + 1) * K) - N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else if(N<K){
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else{
			ans = 0;
		}

		System.out.println(ans);
		// System.out.println(S.toString());

	}
} Main public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long K = sc.nextLong();

		long ans = 0;

		if(N>K){
			long x = N / K;
			long ans1 = N - (K * x);
			long ans2 = ((x + 1) * K) - N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else if(N<K){
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else{
			ans = 0;
		}

		System.out.println(ans);
		// System.out.println(S.toString());

	} main {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long K = sc.nextLong();

		long ans = 0;

		if(N>K){
			long x = N / K;
			long ans1 = N - (K * x);
			long ans2 = ((x + 1) * K) - N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else if(N<K){
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else{
			ans = 0;
		}

		System.out.println(ans);
		// System.out.println(S.toString());

	} 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 long ans = 0; ans 0 if(N>K){
			long x = N / K;
			long ans1 = N - (K * x);
			long ans2 = ((x + 1) * K) - N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else if(N<K){
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else{
			ans = 0;
		} N>K N K {
			long x = N / K;
			long ans1 = N - (K * x);
			long ans2 = ((x + 1) * K) - N;
			ans = (ans1 > ans2)? ans2 : ans1;
		} long x = N / K; x N / K N K long ans1 = N - (K * x); ans1 N - (K * x) N (K * x) K x long ans2 = ((x + 1) * K) - N; ans2 ((x + 1) * K) - N ((x + 1) * K) (x + 1) x 1 K N ans = (ans1 > ans2)? ans2 : ans1 ans (ans1 > ans2)? ans2 : ans1 (ans1 > ans2) ans1 ans2 ans2 ans1 if(N<K){
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else{
			ans = 0;
		} N<K N K {
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		} long ans1 = K - N; ans1 K - N K N long ans2 = N; ans2 N ans = (ans1 > ans2)? ans2 : ans1 ans (ans1 > ans2)? ans2 : ans1 (ans1 > ans2) ans1 ans2 ans2 ans1 {
			ans = 0;
		} ans = 0 ans 0 System.out.println(ans) System.out.println System.out System System.out ans String args[] args
import java.util.Scanner;

class Main{

	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long K = sc.nextLong();

		long ans = 0;

		if(N>K){
			long x = N / K;
			long ans1 = N - (K * x);
			long ans2 = ((x + 1) * K) - N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else if(N<K){
			long ans1 = K - N;
			long ans2 = N;
			ans = (ans1 > ans2)? ans2 : ans1;
		}else{
			ans = 0;
		}

		System.out.println(ans);
		// System.out.println(S.toString());

	}
}