import java.util.*;
import java.io.*;

class Train{
	Scanner in = new Scanner(new File("trains.in"));
	public int n = in.nextInt();
	static LinkedList<Integer> way1 ;
	static LinkedList<Integer> way2 ;
	static LinkedList<Integer> pitstop ;
	public Train () throws Exception {
		way1 = new LinkedList<Integer>();
		way2 = new LinkedList<Integer>();
		pitstop = new LinkedList<Integer>();
		while (in.hasNextInt()){
			int x = in.nextInt();
			way1.addLast(new Integer(x));
			
		}
		
		in.close();
	}
	
}

public class SortVag {
	public static void pr (LinkedList<Integer> way){
		for(Integer i : way){
			System.out.print(" " + i);
		}
	}
	public static void pitst(LinkedList<Integer> way1 ,LinkedList<Integer> way2,LinkedList<Integer> pit, int n) throws Exception{
		int i = 1;		// Счетчик вагонов
		int count = 0;	//Счетчик вагонов которые взяли из way1 
		int count2 = 0;	//Счетчик вагонов которые взяли из pit
		int vtw = 0;//is vagon to way public count2 and count
		int mas[] = new int [n];// massiv взятых вагонов
		int k = 0;				// для массива
		boolean b = true;		// для выхода их while
		PrintWriter out = new PrintWriter("trains.out");
		while (i!=n){
			if (!b) break;
			if (pit.isEmpty()){		//работаем с way1
				int count3 =0;		//Счетчик вагонов на пути way1
				vtw =count;
				count = 0;
				for(Integer el : way1){
					
					pit.addFirst(el);
					way1.remove();
					count3 ++;
					count2 ++;
					if (el == i){
						vtw = count2;
						count2 = 0;
						count++;
						pit.remove();
						break;
					}
					
					if (way1.size() == count3 && el != i){
					b = false;
					}
					
				}
				if (b) way2.addLast(i);
				
			}else{
				// работаем с pit
				if (pit.getFirst() == i){
						way2.addLast(i);
						pit.remove();
						count++;
				}else i--;
			}
			
			if (count2 == 0 || count == 0 ){
				
				mas[k]= vtw;
				k++;
			}
			
		i++;
		}
		if (i!=n){out.print(0);}
		else{
			if(pit.isEmpty()){
				for(int f = 0 ; f <= k ;f++ ){
					if (f%2==0){
						out.println(1+" "+ mas[f]);
					}else out.println(2+" "+ mas[f]);
				}
				// вывести последовательность действий
			}else out.print(0);
		out.close();
	}
	}
	public static void main(String[] args) throws Exception{
		Train Tr = new Train();
		//pr(Tr.way1);
		pitst(Tr.way1,Tr.way2,Tr.pitstop,Tr.n);
	}

}
