현욱은 회사로부터 특수한 명령어를 이용해 주어진 데이터를 압축하는 프로그램을 작성하는 업무를 받게 됐다. 데이터는 길이가 N(1≤N≤10000)인 0과 1로만 구성된 문자열로 표현되며, 현욱이 작성해야하는 프로그램은 아래 목록과 같은 명령어를 사용해서 작성할 수 있다.
명령어는 한 줄에 하나씩 작성하며 프로그램은 명령어의 맨 윗라인부터 순서대로 명령을 수행한다. 메모리 셀은 0번부터 2⋅105번 셀까지 존재한다. 각 메모리 셀의 값은 맨 처음에 0으로 초기화되어 있다.
프로그램은 N 글자를 출력한 경우, 명령어 실행 횟수가 105회를 넘어간 경우, 프로그램의 끝에 도달한 경우, 혹은 잘못된 명령어가 입력된 경우 종료한다. Start, End의 실행 횟수도 명령어 실행 횟수에 포함된다.
위 조건 하에서 입력으로 받은 데이터와 동일한 데이터를 출력하는 프로그램을 작성하려고 한다. 용량 문제로 명령어의 길이는 2000 라인을 넘을 수 없다. 현욱을 도와 주어진 입력 데이터를 나타내는 프로그램을 작성해보자.
첫 줄에 N이 주어진다(1≤N≤10000).
둘째 줄에 길이가 N인 0과 1로만 구성된 문자열이 주어진다.
첫 줄에 사용한 명령어의 개수 K를 출력한다(1≤K≤2000).
둘째 줄부터 K줄에 걸쳐 입력으로 주어진 문자열을 생성할 수 있는 프로그램 명령어를 출력한다.