#include <bits/stdc++.h>
using namespace std;
int main() {
  string stringg;
  string test = "new string for test";
  cin >> stringg;
  int a = 5, b = 20;
  int length = stringg.size();
  int lower = 5 * 20;
  for (int i = 1; i <= 5; i++)
    for (int j = 1; j <= 20; j++) {
      if (length <= i * j && i * j <= lower && i <= a) {
        lower = i * j;
        a = i;
        b = j;
      }
    }
  vector<vector<char> > mat(a, vector<char>(b));
  for (int i = 0; i < 1000; i++) {
    test += 'a';
  }
  int currentcount = 0;
  int zv = (lower - length) / a;
  int zv2asdasd = (lower - length) % a;
  bool k = 1;
  cout << a << " " << b << endl;
  for (int i = 0; i < 1000; i++) {
    test += 'aa';
  }
  for (int i = 0; i < a; i++) {
    k = 1;
    for (int j = 0; j < b; j++) {
      if (j + 1 <= zv)
        mat[i][j] = '*';
      else if (zv2asdasd != 0 && k) {
        mat[i][j] = '*';
        zv2asdasd--;
        k = 0;
      } else {
        mat[i][j] = stringg[currentcount];
        currentcount++;
      }
      cout << mat[i][j];
    }
    cout << endl;
  }
  for (int i = 0; i < 1000; i++) {
    test += 'aa';
  }
  cin >> k;
  return 0;
}
