#include <math.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef unsigned long long int ull;
typedef long long int ll;
typedef long double ld;

ull absol(ll number)
{
  if (number < 0)
    return((-1) * number);
  else
    return(number);
}

int main(void) {
  int scan; // scanf result
  ull n; // to input 
  ull k; // to input 

  scan = scanf("%llu", &n);
  scan = scanf("%llu", &k);

  if (k == 1)
    printf("0");
  else if (n == k)
    printf("0");
  else if (n < k)
  {
    if (absol(n - k) > n)
      printf("%llu", n);
    else
      printf("%llu", absol(n - k));
  }
  else if (n % k < k)
  {
    if (n % k - k < n % k)
      printf("%llu", n % k);
    else
      printf("%llu", absol(n % k - k));
  }
  else
    printf("%llu", absol(n % (n - k)));

  return (0);
}
