#include <bits/stdc++.h>
using namespace std;
int org[26], req[26], y, n, ans, maxi;
int ansr(int l, int r) {
  if (l >= r) return l;
  int mid = l + (r - l) / 2;
  int o = 0;
  for (int i = 0; i < 26; i++)
    if (org[i] != 0) {
      o += org[i] / mid;
      if (org[i] % mid != 0) o += 1;
    }
  if (o > n)
    return ansr(mid + 1, r);
  else
    return ansr(l, mid);
}
int main() {
  char s[1003];
  cin >> s;
  cin >> n;
  for (int i = 0; s[i] != '\0'; i++) org[s[i] - 97]++;
  for (int i = 0; i < 26; i++)
    if (org[i] != 0) {
      ++y;
      req[i] = 1;
      if (maxi < org[i]) maxi = org[i];
    }
  if (y > n)
    cout << "-1\n";
  else {
    ans = ansr(1, maxi);
    int o = 0, suma = 0;
    for (int i = 0; i < 26; i++)
      if (org[i] != 0) {
        o = 0;
        o += org[i] / ans;
        if (org[i] % ans != 0) o += 1;
        req[i] = o;
        suma += o;
      }
    cout << ans << endl;
    for (int i = 0; i < 26; i++)
      while (req[i]--) cout << (char)(i + 97);
    if (suma < n)
      for (int i = 1; i <= n - suma; i++) cout << 'a';
    cout << endl;
  }
  return 0;
}
