/*洛谷 1731 生日蛋糕 傻傻的-1 T成了傻逼*/
#include<cstdio>
#include<iostream>
#include<cmath>
#define inf 1e17
#define maxn 20
#define ll long long
using namespace std;
ll n,m,ans=inf,a[maxn],b[maxn];
void Dfs(ll now,ll V,ll S,ll h,ll r){
ll res=m-now+1,r1=0;
if(V>n||V+a[res]>n||S+b[res]>=ans)return;
if(S+(n-V)/r*2>=ans)return;
if(V+res*(h-1)*(r-1)*(r-1)<n)return;
if(now==m+1){
if(V==n)ans=S;return;
}
ll x,y;y=max(res,(ll)1);
for(ll i=h-1;i>=y;i--){
ll x=min(r-1,(ll)sqrt((n-V-a[res-1])/i)+1);
for(ll j=x;j>=y;j--){
if(now==1)r1=j;
Dfs(now+1,V+i*j*j,S+i*j*2+r1*r1,i,j);
}
}
}
int main()
{
cin>>n>>m;
for(ll i=1;i<=m;i++){
a[i]=a[i-1]+i*i*i;
b[i]=b[i-1]+2*i*i;
}
Dfs(1,0,0,n+1,n+1);
if(ans==inf)ans=0;
cout<<ans<<endl;
return 0;
}