对于序列 a1,a2,…,an ,若它的子段 al,al+1,…,ar , 如果存在 mid∈[l+1,r−1] ,使得 al,al+1,…,amid 是不减的, amid,amid+1,…,ar 是不增的,且 r−l+1≥3 , 就称这个子段是山型的。
若对于整数 k (3≤k≤n) , 若子段 [1,k] , [k+1,2k] , … , [(m−1)k+1,mk] , [mk+1,n] 都是山型的,且 mk≤n,n−mk<k , 我们就称序列 a 是一个山脉。
现在给定一个正整数序列 a , 其中值为 −1 的数可以表示任何数,请你找出所有使得该序列为山脉的整数 k 。
输入格式
第一行输入一个整数 n , 表示序列的长度 (1≤n≤105)。
第二行输入 n 个整数 a1,a2,a3,…,an 表示给定的序列 。 (1≤ai≤109 或 ai=−1)
输出格式
第一行一个整数 m , 表示满足要求的 k 的数量。
接下来 m 行,每行一个整数,从小到大输出所有满足要求的 k 。
样例输入
11
7 -1 11 10 -1 -1 26 14 9 12 -1
样例输出
1
4