#include <iostream>
#include <random>
#include <set>
#include <cassert>
#include <chrono>
std::mt19937 rng(std::chrono::high_resolution_clock::now().time_since_epoch().count());
int random(int l, int r) {
assert(l <= r);
return std::uniform_int_distribution<int>(l, r)(rng);
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(0);
int n = 1000;
std::string s;
for (int i = 1; i <= 1000; i++) {
s += (char)('a' + random(0, 25));
}
std::cout << s << '\n';
int q = 100000;
int Q = 200000;
std::set<std::string> que;
while (q > 0 && Q > 0) {
int len = std::min(Q, 2);
Q -= len;
std::string t;
for (int i = 1; i <= len; i++) {
t += (char)('a' + random(0, 25));
}
que.insert(t);
q--;
}
std::cout << que.size() << '\n';
for (auto x : que) {
std::cout << x << '\n';
}
return 0;
}