#include <bits/stdc++.h>
using namespace std;
long long a[28], b[28], n;
bool check(long long val) {
  long long x = 0, y, i;
  for (i = 0; i < 26; i++) {
    if (a[i] > 0) {
      y = (a[i] % val == 0) ? a[i] / val : a[i] / val + 1;
      x += y;
    }
  }
  if (x > n)
    return false;
  else
    return true;
}
int main() {
  string s, s1 = "";
  long long i, len, x = 0, y = 0, ans = 0, low, high, mid;
  cin >> s >> n;
  len = s.length();
  for (i = 0; i < len; i++) a[s[i] - 'a']++;
  for (i = 0; i < 26; i++) {
    if (a[i] > 0) x++;
  }
  if (n < x) {
    cout << "-1\n";
    return 0;
  }
  low = 1;
  high = 1000;
  while (high - low >= 10) {
    mid = (low + high) >> 1;
    if (check(mid)) {
      high = mid;
    } else {
      low = mid + 1;
    }
  }
  for (i = low; i <= high; i++) {
    if (check(i)) {
      ans = i;
      break;
    }
  }
  cout << ans << "\n";
  for (i = 0; i < 26; i++) {
    if (a[i] > 0) {
      x = (a[i] % ans == 0) ? a[i] / ans : a[i] / ans + 1;
      while (x--) s1 += char(i + 'a');
    }
  }
  while (s1.length() < n) {
    s1 += 'a';
  }
  cout << s1 << "\n";
  return 0;
}
