描述

  给定长度为 NN 的实数序列 Ai(1iN)A_i(1 \leq i \leq N), 你需要在数列上进行两类操作:
  1.把 lirl\leq i \leq r 中的每个 AiA_i 加上实数 vv
  2.求 lirl\leq i \leq rcos(Ai)cos(A_i) 的和。

输入

  输入包含多组数据,最开头的正整数 T(T5)T (T\leq 5) 指明了数据组数。对于每组数据:
  第一行 22 个整数 NNMM,表示数列长度与操作个数。
  第二行 NN 个实数 Ai(Ai100)A_i(|A_i|\leq 100),小数点后最多有3位小数。
  接下来 MM 行每行形如“1 l r v1\ l\ r\ v” 或 “2 l r2\ l\ r”。前者表示一个第1类操作,后者表示一个第2类操作。其中 l,r(1lrN)l,r(1\leq l\leq r\leq N) 是整数,而 v(v100)v(|v|\leq 100) 是实数,小数点后最多有3位小数。

输出

对于每组数据,先输出一行 “Case #k:”,其中k是该组数据的编号,从1开始。
对于每组数据中的每个第2类操作,输出一个实数表示答案,保留3位小数。

样例输入
3
3 3
0 -2 -6
1 1 2 -7
2 1 2
2 2 3
5 4
4 2 4 -0 -4
1 1 4 2
2 4 5
1 3 5 5
2 2 3 
7 3
0.123 -19.002 -57.507 34.434 -80.886 -17.115 69.843
2 2 7
1 2 7 16.341
2 1 3
样例输出
Case #1:
-0.157	
0.049
Case #2:
-1.070
-0.649
Case #3:
1.854
-0.842
提示

  对于 20%20\% 的数据,1N,M10001 \leq N, M \leq 1000
  对于另外 20%20\% 的数据,没有1类操作。
  对于另外 20%20\% 的数据,1类操作均在2类操作之前。
  对于 100%100\% 的数据,1N1 ≤ N, M200000M ≤ 200000。每个测试点中所有数据的 NN, MM 之和各不会超过