var
	n, maxc, minc, i, j: longint;
	x, y: array [1..500] of longint;
	ok, ni: boolean;

function nei(xi, yi, xj, yj: longint): boolean;
begin
	nei := 
		((yi = yj) and (abs(xi - xj) = 1)) or
		((yi = yj + 1) and (xi mod 2 = 0) and (xi + yi = xj + yj)) or
		((yj = yi + 1) and (xj mod 2 = 0) and (xi + yi = xj + yj));
end;

begin
	n := 3 * 166;

	for i := 1 to 166 do begin
		x[3 * i - 2] := 1;
		y[3 * i - 2] := i;
		x[3 * i - 1] := 2;
		y[3 * i - 1] := i;
		x[3 * i - 0] := 3;
		y[3 * i - 0] := i;
	end;

	writeln(n);
	for i := 1 to n do begin
		writeln(x[i], ' ', y[i]);
	end;
end.