#include <bits/stdc++.h>
using namespace std;
int n;
map<char, int> f;
string s;
char ch;
bool solve(long long in) {
  int c = 0;
  for (auto a : f) {
    if (c > n) return 0;
    c += a.second / in + (a.second % in ? 1 : 0);
  }
  return c <= n;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> s >> n;
  for (int i = 0; i < (int)s.length(); i++) {
    f[s[i]]++;
  }
  if ((int)f.size() > n) {
    cout << -1;
    return 0;
  }
  if (n >= (int)s.length()) {
    cout << 1 << endl << s;
    for (int i = (int)s.length(); i < n; i++) cout << s[0];
    return 0;
  }
  long long low = 1, mid, high = 1000;
  while (1) {
    mid = (low + high) / 2;
    if (solve(low)) {
      mid = low;
      break;
    } else if (mid == low) {
      mid = high;
      break;
    }
    if (solve(mid))
      high = mid;
    else
      low = mid + 1;
  }
  cout << mid << endl;
  int disp = 0;
  for (auto a : f) {
    int t = a.second / mid + (a.second % mid ? 1 : 0);
    for (int j = 0; j < t; j++) {
      cout << a.first;
      ch = a.first;
      disp++;
    }
  }
  while (disp < n) {
    cout << ch;
    disp++;
  }
  return 0;
}
