#include <algorithm>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

#define MAXN 5001
#define INFTY 999999999

vector<string> words;
string final;
int n;

string play (int left, int right, int length) 
{
	if (words [left].length() == length) 
		return words [left];
	string best;
	int best_value = -INFTY;
	int p = left;
	int v;
	while (p < right) 
	{
		int q = p + 1;
		while((q < right) && (words [q][length] == words [p][length])) 
			q++;
		string s = play (p, q, length + 1);
		if ((s.length() - length) & 1) 
			v = -10000 + (s.length() - length);
		else 
			v = 10000 - (s.length() - length);
		if (v > best_value) 
		{ 
			best_value = v; 
			best = s; 
		}
		p = q;
	}
	return best;
}

int main ()
{
	ifstream in("igra.in");
	in >> n;
	string s;
	for (int i = 0; i < n; i++)
	{
		in >> s;
		words.push_back (s);
	}
	in.close ();

	sort (words.begin(), words.end());
	final = play (0, words.size(), 0);

	ofstream out("igra.out");
	if ((final.length () & 1) == 0)
		out << 1 << endl;
	else
		out << 2 << endl;
	out << final << endl;
	out.close ();
	return 0;
}
