MMMMMMMMMMMMMMMMMMMMMMMMMM#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<utility>
#include<map>
using namespace std;
  
int n, m, i, j, k;
map <string, int> check;
vector <string> ans;
char dum[105];
string s[10005];MM
  
int main(void){
    scanf("%d %d", &n, &m);
    for (i = 0; i < n; i++){
        scanf("%s", dum);
        s[i] = dum;
        reverse(s[i].begin(),s[i].end());
    }
      
    sort(s,s+n);
      
    for (i = 0; i < n-1; i++){
        int len = s[i].length();
        for (j = i+1; j < n; j++){
            if (s[j].length() < len)
                break;
            bool flag = 1;
            for (k = 0; k < len && flag; k++)
                if (s[j][k] != s[i][k])
                    flag = 0;
                     
            if (flag)
                check[s[j].substr(len)]++;
            else
                break;
        }
    }
      
    map <string, int>::iterator ii;
    for (ii = check.begin(); ii != check.end(); ii++){
        if ((ii -> second) >= m){
            string t = (ii -> first);
            reverse(t.begin(), t.end());
            ans.push_back(t);
        }
    }
    sort(ans.begin(), ans.end());
    printf("%d\n", ans.size());
    for (i = 0; i < ans.size(); i++)
        printf("%s\n", ans[i].c_str());
      
    return 0;
}
