#include <bits/stdc++.h>
using namespace std;
string str;
set<string> s;
bool f[10010][5];
int main(int, char *[]) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  cin >> str;
  n = str.length() - 5;
  str = str.substr(5, n);
  if (n < 2) {
    cout << 0 << endl;
    return 0;
  }
  f[n - 2][2] = 1;
  s.insert(str.substr(n - 2, 2));
  if (n >= 3) {
    f[n - 3][3] = 1;
    s.insert(str.substr(n - 3, 3));
  }
  for (int i = n - 4; i >= 0; --i) {
    string s1, s2;
    s1 = str.substr(i, 2);
    s2 = str.substr(i + 2, 2);
    if ((s1 != s2 && f[i + 2][2]) || f[i + 2][3]) {
      s.insert(s1);
      f[i][2] = 1;
    }
    s1 = str.substr(i, 3);
    s2 = str.substr(i + 3, 3);
    if ((s1 != s2 && f[i + 3][3]) || f[i + 3][2]) {
      s.insert(s1);
      f[i][3] = 1;
    }
  }
  cout << s.size() << endl;
  for (set<string>::iterator it = s.begin(); it != s.end(); ++it) {
    cout << *it << endl;
  }
  return 0;
}
