// Задача "Интернет-банкинг"
// XVI командный чемпионат школьников Санкт-Петербурга по программированию
// Автор решения: Владимир Ульянцев, ulyantsev@rain.ifmo.ru

const
	maxn = 100;
var
	n, m, i, j, max, k, max_pos : longint;
	was : array [1..maxn] of boolean;
	s : array [1..maxn] of string;
	p : string;
begin
	reset(input, 'bank.in');
	rewrite(output, 'bank.out');

	readln(n);
	for i := 1 to n do begin
		readln(s[i]);
		was[n] := false;
	end;
	readln(p);
	m := length(s[1]);

	max := 0;
	max_pos := -1;
	for i := 1 to n do begin
		k := 0;
		for j := 1 to m do
			if (s[i][j] = p[j]) then begin
				inc(k);
				was[j] := true;
			end;
		if (k > max) then begin
			max := k;
			max_pos := i;
		end;
	end;
	
	for i := 1 to n do 
		if (not was[i]) then begin
			writeln(-1);
			halt;
		end;

	writeln(m - max);
	for i := 1 to n do begin
		for j := 1 to m do begin
			if ((s[max_pos][j] <> p[j]) and (s[i][j] = p[j])) then begin
				s[max_pos][j] := p[j];
				writeln(i, ' ', max_pos, ' ', j);
			end;
		end;
	end;

end.