Given any integer x, Aoki can do the operation below.

Operation: Replace x with the absolute difference of x and K.

You are given the initial value of an integer N. Find the minimum possible value taken by N after Aoki does the operation zero or more times.

Constraints

* 0 ≤ N ≤ 10^{18}
* 1 ≤ K ≤ 10^{18}
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


N K


Output

Print the minimum possible value taken by N after Aoki does the operation zero or more times.

Examples

Input

7 4


Output

1


Input

2 6


Output

2


Input

1000000000000000000 1


Output

0
import java.util.Scanner;

public class Main {

  public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    
    long n = scan.nextLong();
    long k = scan.nextLong();
    
    long res = n % k;
    
    System.out.println(Math.min(Math.abs(res-k),res));
  } 
}