在仙境之外
题号:NC263910
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

兔子,兔子,拿饼干。
帽匠,帽匠,倒茶水。
柴郡猫将长桌铺整齐,
爱丽丝端来小茶杯;
旧访客啊,别哭泣,
茶会的准备已就绪。
给定一个长度为 n+1 的序列 a 的前 n 项和一个数 Sa_{n+1} 初始为 0。将一次操作 定义为 a_i=a_j \oplus a_k,其中 \oplus 为加减乘除(下取整)的一种。问是否能通过若干次操作使得 a_{n+1}=S。输出方案。

注意要求 i,j,k 互不相同。

输入描述:

第一行两个整数 n,S

第二行 n 个整数,表示序列 a

输出描述:

1 行一个整数 x,表示操作次数。

接下来 x 行,每行先输出三个整数 i,j,k\,(1 \le i,j,k \le n+1),含义同题目描述。再输出操作的符号 +,-,*,/ 其中之一,以一个空格分隔。

请保证运算过程中 a_1,\dots,a_{n+1} 时刻处于 [0,2e18] 之间,操作次数不超过 200
示例1

输入

复制
5 17
1 2 3 4 5

输出

复制
5
2 2 4 *
6 6 1 +
6 6 2 +
6 6 3 +
6 6 5 +

说明

a_2=a_2* a_4=2 \times 4=8
a_6=a_6+a_1=0+1=1
a_6=a_6+a_2=1+8=9
a_6=a_6+a_3=9+3=12
a_6=a_6+a_5=12+5=17

备注:

对于所有数据,1\leq n\leq 10^51\leq a_i,S\leq 10^{18}