#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
char str[N];
int cnt[26];
int ans[26];
int f(int i) { return cnt[i] / ans[i] + (bool)(cnt[i] % ans[i]); }
int main() {
  scanf("%s", str);
  int n;
  scanf("%d", &n);
  memset(cnt, 0, sizeof(cnt));
  int len = strlen(str);
  for (int i = 0; i < len; i++) cnt[str[i] - 97]++;
  memset(ans, 0, sizeof(ans));
  for (int i = 0; i < 26; i++)
    if (cnt[i]) {
      ans[i]++;
      n--;
    }
  if (n < 0) {
    printf("-1\n");
    return 0;
  }
  for (int i = 0; i < n; i++) {
    int k = -1;
    for (int j = 0; j < 26; j++)
      if (cnt[j]) {
        if (k == -1 || f(j) > f(k)) k = j;
      }
    ans[k]++;
  }
  int t = 0;
  for (int i = 0; i < 26; i++)
    if (cnt[i]) t = max(t, f(i));
  printf("%d\n", t);
  for (int i = 0; i < 26; i++) {
    for (int j = 0; j < ans[i]; j++) printf("%c", 'a' + i);
  }
  printf("\n");
  return 0;
}
