#include <bits/stdc++.h>
using namespace std;
inline int rint() {
  int a;
  scanf("%d", &a);
  return a;
}
inline long long rll() {
  long long a;
  scanf("%lld", &a);
  return a;
}
inline double rdouble() {
  double a;
  scanf("%lf", &a);
  return a;
}
long long gcd(long long a, long long b) { return (b) ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
long long pow(long long a, long long b, long long q) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % q;
    a = a * a % q;
    b >>= 1;
  }
  return ans;
}
const int maxn = 1e5 + 5;
;
int main() {
  long long n = rll(), m = rll(), a = rll(), b = rll();
  if (n % m == 0) return puts("0"), 0;
  long long res = LLONG_MAX;
  res = min(res, n % m * b);
  res = min(res, (m - n % m) * a);
  cout << res << endl;
  return 0;
}
