#include <bits/stdc++.h>
using namespace std;
set<string> st;
bool d[2][10005];
int main() {
  string s;
  int n;
  cin >> s;
  s = s.substr(5);
  n = s.size();
  d[0][n - 2] = (n >= 2);
  d[1][n - 3] = (n >= 3);
  for (int i = n - 2; i >= 0; --i) {
    if (d[0][i]) {
      if (i - 2 >= 0 && s.substr(i - 2, 2) != s.substr(i, 2)) d[0][i - 2] = 1;
      if (i - 3 >= 0) d[1][i - 3] = 1;
    }
    if (d[1][i]) {
      if (i - 2 >= 0) d[0][i - 2] = 1;
      if (i - 3 >= 0 && s.substr(i - 3, 3) != s.substr(i, 3)) d[1][i - 3] = 1;
    }
  }
  for (int i = 0; i < n; ++i) {
    if (d[0][i]) st.insert(s.substr(i, 2));
    if (d[1][i]) st.insert(s.substr(i, 3));
  }
  cout << st.size() << '\n';
  for (auto i : st) cout << i << '\n';
}
