#include <iostream>
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
std::unordered_map<long long int,long long int> dp;
dp[1] = 0;
dp[0] = 0;
ll solve(ll n, ll k, ll a, ll b){
ll ans=0;
ll p = n;
if(dp[n]!=0) return dp[n];
while(n>1){
if(n%k != 0){
n--;
ans+= a;
}
else{
if(solve(n/k,k,a,b)+b > solve(n-1,k,a,b)+a){
ans+= a;
n--;
}
else{
ans+=b;
n/=k;
}
}
}
dp[p] = ans;
return dp[n];
}
int main() {
// your code goes here
ll n,k,a,b;
cin>>n>>k>>a>>b;
cout<<solve(n,k,a,b);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxsIGxvbmcgbG9uZyBpbnQKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0ZDo6dW5vcmRlcmVkX21hcDxsb25nIGxvbmcgaW50LGxvbmcgbG9uZyBpbnQ+IGRwOwpkcFsxXSA9IDA7CmRwWzBdID0gMDsKbGwgc29sdmUobGwgbiwgbGwgaywgbGwgYSwgbGwgYil7CglsbCBhbnM9MDsKCWxsIHAgPSBuOwoJaWYoZHBbbl0hPTApIHJldHVybiBkcFtuXTsKCXdoaWxlKG4+MSl7CgkJaWYobiVrICE9IDApewoJCQluLS07CgkJCWFucys9IGE7CgkJfQoJCWVsc2V7CgkJCWlmKHNvbHZlKG4vayxrLGEsYikrYiA+IHNvbHZlKG4tMSxrLGEsYikrYSl7CgkJCQlhbnMrPSBhOwoJCQkJbi0tOwoJCQl9CgkJCWVsc2V7CgkJCQlhbnMrPWI7CgkJCQluLz1rOwoJCQl9IAoJCX0KCX0KCWRwW3BdID0gYW5zOwoJcmV0dXJuIGRwW25dOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWxsIG4sayxhLGI7CgljaW4+Pm4+Pms+PmE+PmI7Cgljb3V0PDxzb2x2ZShuLGssYSxiKTsKCXJldHVybiAwOwp9