Задана программа, состоящая из \(n\) инструкций. Изначально единственная переменная \(x\) присваивается \(0\). После этого следуют инструкции двух типов:
- увеличить \(x\) на \(1\);
- уменьшить \(x\) на \(1\).
Даны \(m\) запросов следующего типа:
- запрос \(l\) \(r\) — сколько различных значений принимает переменная \(x\), если все инструкции между \(l\)-й и \(r\)-й включительно пропускаются, а остальные исполняются без изменения порядка?
Выходные данные
На каждый набор входных данных выведите \(m\) целых чисел — для каждого запроса \(l\), \(r\) выведите количество различных значений, которые принимает переменная \(x\), если все инструкции между \(l\)-й и \(r\)-й включительно пропускаются, а остальные исполняются без изменения порядка.
Примечание
Инструкции, которые остаются в каждом запросе первого набора входных данных:
- пустая программа — \(x\) был равен только \(0\);
- «-» — \(x\) принимал значения \(0\) и \(-1\);
- «---+» — \(x\) принимал значения \(0\), \(-1\), \(-2\), \(-3\), \(-2\) — среди них \(4\) различных значения;
- «+--+--+» — различные значения — это \(1\), \(0\), \(-1\), \(-2\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
2 8 4 -+--+--+ 1 8 2 8 2 5 1 1 4 10 +-++ 1 1 1 2 2 2 1 3 2 3 3 3 1 4 2 4 3 4 4 4
|
1
2
4
4
3
3
4
2
3
2
1
2
2
2
|