#P4683. GukiZ and GukiZiana

GukiZ and GukiZiana

GukiZ and GukiZiana

题面翻译

给定一个数列a1,a2,,ana_1,a_2,\dots,a_n,有两个操作:

  1. 给定l,r,xl,r,x,令al,al+1,,ara_l,a_{l+1},\dots,a_r都加上xx
  2. 给定yy,求一个最大的jij-i,满足ai=aj=ya_i=a_j=y,输出最大的jij-i,无解输出1-1

题目描述

Professor GukiZ was playing with arrays again and accidentally discovered new function, which he called GukiZiana GukiZiana . For given array a a , indexed with integers from 1 1 to n n , and number y y , GukiZiana(a,y) GukiZiana(a,y) represents maximum value of ji j-i , such that aj=ai=y a_{j}=a_{i}=y . If there is no y y as an element in a a , then GukiZiana(a,y) GukiZiana(a,y) is equal to 1 -1 . GukiZ also prepared a problem for you. This time, you have two types of queries:

  1. First type has form 1 1 l l r r x x and asks you to increase values of all ai a_{i} such that l<=i<=r l<=i<=r by the non-negative integer x x .
  2. Second type has form 2 2 y y and asks you to find value of GukiZiana(a,y) GukiZiana(a,y) .

For each query of type 2 2 , print the answer and make GukiZ happy!

输入格式

The first line contains two integers n n , q q ( 1<=n<=5105,1<=q<=5104 1<=n<=5*10^{5},1<=q<=5*10^{4} ), size of array a a , and the number of queries.

The second line contains n n integers a1,a2,... an a_{1},a_{2},...\ a_{n} ( 1<=ai<=109 1<=a_{i}<=10^{9} ), forming an array a a .

Each of next q q lines contain either four or two numbers, as described in statement:

If line starts with 1 1 , then the query looks like 1 1 l l r r x x ( 1<=l<=r<=n 1<=l<=r<=n , 0<=x<=109 0<=x<=10^{9} ), first type query.

If line starts with 2 2 , then th query looks like 2 2 y y ( 1<=y<=109 1<=y<=10^{9} ), second type query.

输出格式

For each query of type 2 2 , print the value of GukiZiana(a,y) GukiZiana(a,y) , for y y value for that query.

样例 #1

样例输入 #1

4 3
1 2 3 4
1 1 2 1
1 1 1 1
2 3

样例输出 #1

2

样例 #2

样例输入 #2

2 3
1 2
1 2 2 1
2 3
2 4

样例输出 #2

0
-1