#include<bits/stdc++.h>
using namespace std;
int r[21],h[21],n,m,we=0x3f3f3f3f;
void dfs(int v,int s,int k,int p){
int i,j;
if(v<0){
return;
}
if(k<0){
return;
}
if(s+k+r[1]*r[1]>we){
return;
}
if(v>r[p-1]*r[p-1]*h[p-1]*k)return;
if(k==0&&v==0){
s+=r[1]*r[1];
we=min(we,s);
return;
}
for(i=r[p-1]-1;i>=k;i--){
for(j=h[p-1]-1;j>=k;j--){
if(v>=i*i*j&&k>=0){
r[p]=i;
h[p]=j;
dfs(v-i*i*j,s+2*i*j,k-1,p+1);
r[p]=i;
h[p]=j;
}
}
}
}
int main(){
cin>>n>>m;
h[0]=int(sqrt(n));
r[0]=int(sqrt(n));
dfs(n,0,m,1);
if(we==0x3f3f3f3f){
cout<<0;
}else{
cout<<we;
}
return 0;
}
大神求解!