RT,WAon#5#14
//#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll x,len,maxn = -1,a[130],ans;
string t;
inline ll read(){
ll x = 0,m = 1;
char ch = getchar();
while(!isdigit(ch)){
if(ch=='-') m = -1;
ch = getchar();
}
while(isdigit(ch)){
x = x * 10 + ch - 48;
ch = getchar();
}
return x * m;
}
inline void write(ll x){
if(x < 0){
putchar('-');
write(-x);
return;
}
if(x >= 10) write(x / 10);
putchar(x % 10 + '0');
}
signed main(){
cin >> t;
x = read();
ll sum = x - (len = t.size());
if(sum <= 0){
write(sum);
return 0;
}
for(int i = 0; i < len; ++ i){
++a[int(t[i])];
}
for(int i = 1; i <= 128; ++ i){
maxn = max(maxn,a[i]);
}
while(sum > 0){
sum -= maxn;
maxn *= 2;
++ans;
}
write(ans);
return 0;
}