#include <bits/stdc++.h>
using namespace std;
long long int n;
map<long long int, long long int> m;
string s;
bool check(long long int mid) {
  long long int i, j;
  long long int sum = 0;
  for (auto it = m.begin(); it != m.end(); it++) {
    sum = sum + ceil((it->second) * 1.00 / mid);
  }
  if (sum <= n) return 1;
  return 0;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int i, j;
  long long int k;
  cin >> s;
  cin >> n;
  if (n >= s.size()) {
    cout << "1\n";
    cout << s;
    for (i = s.size() + 1; i <= n; i++) cout << s[0];
    return 0;
  }
  for (i = 0; i < s.size(); i++) m[s[i] - 'a' + 1]++;
  long long int low = 1, high = 1000, ans = -1;
  while (low <= high) {
    long long int mid = (low + high) >> 1;
    if (check(mid)) {
      ans = mid;
      high = mid - 1;
    } else
      low = mid + 1;
  }
  if (ans == -1)
    cout << "-1\n";
  else {
    long long int count = 0;
    cout << ans << "\n";
    for (auto it = m.begin(); it != m.end(); it++) {
      for (j = 1; j <= ceil((it->second) * 1.00 / ans); j++) {
        count++;
        cout << (char)(it->first + 'a' - 1);
      }
      if (count == n) return 0;
    }
    for (i = count + 1; i <= n; i++) {
      cout << s[0];
    }
    cout << "\n";
  }
  return 0;
}
