#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
int n;
string s;
int cnt[2100];
bool check(int m) {
  int x = n;
  for (int i = ('a'), _b = ('z'); i <= _b; i++) {
    x -= cnt[i] / m + (cnt[i] % m > 0);
  }
  return x >= 0;
}
int find() {
  int l = 1, r = 1000, res = 0;
  while (l <= r) {
    int m = (l + r) / 2;
    if (check(m)) {
      res = m;
      r = m - 1;
    } else
      l = m + 1;
  }
  return res;
}
void process(int d) {
  if (d == 0) {
    cout << -1 << endl;
    return;
  }
  cout << d << endl;
  for (int i = ('a'), _b = ('z'); i <= _b; i++) {
    int x = cnt[i] / d + (cnt[i] % d > 0);
    for (int j = 0, _n = (x); j < _n; j++) cout << (char)i;
    n -= x;
  }
  for (int i = 0, _n = (n); i < _n; i++) cout << 'a';
}
int main() {
  cin >> s >> n;
  for (int i = 0, _n = (s.length()); i < _n; i++) {
    cnt[s[i]]++;
  }
  int d = find();
  process(d);
  return 0;
}
