Codeforces Round 307 (Div. 2)
E
GukiZ and GukiZiana
Codeforces
2500
原题
← D→
翻译中…

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

翻译中…
  1. First type has form $1$ $*l*$ $*r*$ $*x*$ and asks you to increase values of all $*a*_{*i*}$ such that $*l* ≤ *i* ≤ *r*$ by the non-negative integer $*x*$.
  2. Second type has form $2$ $*y*$ and asks you to find value of $*GukiZiana*(*a*, *y*)$.
翻译中…

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

翻译中…

Input

翻译中…

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

翻译中…

The second line contains $*n*$ integers $*a*_{1}, *a*_{2}, ... *a*_{*n*}$ ($1 ≤ *a*_{*i*} ≤ 10^{9}$), forming an array $*a*$.

翻译中…

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

翻译中…

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

翻译中…

If line starts with $2$, then th query looks like $2$ $*y*$ ($1 ≤ *y* ≤ 10^{9}$), second type query.

翻译中…

Output

翻译中…

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

翻译中…

样例

Input #1
4 3
1 2 3 4
1 1 2 1
1 1 1 1
2 3
Output #1
2
InputCopy OutputCopy
Input #2
2 3
1 2
1 2 2 1
2 3
2 4
Output #2
0
-1
InputCopy OutputCopy
题目信息
题号
551E
时间限制
10 s
内存限制
256 MB
标签
二分
数据结构
模拟

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。