public static void main(String args[]) throws Throwable {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int N=parseInt(in.readLine().trim());
		int[][] arr=new int[N][];
		for(int i=0;i<N;i++) {
			StringTokenizer st=new StringTokenizer(in.readLine());
			int a=parseInt(st.nextToken()),b=parseInt(st.nextToken());
			arr[i]=new int[]{a,b};	
		}
		Arrays.sort(arr, new Comparator<int[]>() {
			@Override
			public int compare(int[] o1, int[] o2) {
				if(abs(o1[0])+abs(o1[1])<abs(o2[0])+abs(o2[1]))
					return -1;
				if(abs(o1[0])+abs(o1[1])<abs(o2[0])+abs(o2[1]))
					return 1;
				if(o1[0]<o2[0])
					return -1;
				if(o1[0]>o2[0])
					return 1;
				return o1[1]<o2[1]?-1:1;
			}
		});
		for(int i=0;i<N;i++) {
			f(0,0,arr[i][0],arr[i][1]);
			solution.add(new int[]{'2'});
			f(arr[i][0],arr[i][1],0,0);
			solution.add(new int[]{'3'});
		}
		sb.append(solution.size()).append("\n");
		for(int[] a:solution) {
			for(int i=0;i<a.length-1;i++)
				sb.append(a[i]).append(" ");
			sb.append((char)a[a.length-1]).append("\n");
		}
		System.out.print(new String(sb));
	}