// AtCoder165 C

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <assert.h>
#include <string.h>
#include <memory.h>
#include <malloc.h>
#include <stdlib.h>

// qsortで用いる比較用関数．*a<*bならaが先になる．
int compare(const void* a, const void* b) {
    return *(int*)a - *(int*)b;
}

int revcompare(const void* a, const void* b) {
    return *(int*)b- *(int*)a;
}


int main() {
    int i,j;
    long long int n;
    long long int k;

    scanf("%lld %lld", &n, &k);

    n = n - (n/k) * k;


    if(-(n-k) < n){
        printf("%lld", -(n-k));
    }else{
        printf("%lld", n);
    }
    return 0;
}