永远亭的小游戏(续)
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt} 辉夜由于整天宅在家,整个人都已经变成了一只废neet姬了,因此她找来了妹红。
\hspace{15pt} 辉夜拿到了一个长为 n 的数组 ,现在她要与妹红玩 q 次游戏,每次游戏流程如下:
\hspace{23pt}\bullet 妹红选择数组的一个区间 \left[l, r\right],如果辉夜能在这个区间中选择一个子序列,使得子序列中所有数的乘积恰好是一个完全平方数,那么辉夜获胜,反之妹红获胜。
\hspace{15pt}现在辉夜想知道,对于每次游戏,她能否获胜?

输入描述:

\hspace{15pt}第一行输入两个整数 n, q\left(1 \leqq n \leqq 2\times 10^5, 1 \leqq q \leqq 10^5 \right)
\hspace{15pt}第二行输入 n 个整数 a_i\left(1 \leqq a_i \leqq 100 \right)
\hspace{15pt}之后的 q 行,每行输入两个整数 l_i, r_i \left(1 \leqq l_i \leqq r_i \leqq n \right),代表第 i 次游戏妹红选择的区间。

输出描述:

\hspace{15pt}对于每次游戏,新起一行。
\hspace{15pt}如果辉夜能够获胜,请输出 \texttt{Yes},否则输出 \texttt{No}
示例1

输入

复制
4 2
11 4 5 14
1 2
3 4

输出

复制
Yes
No

说明

对于第一次游戏,辉夜可以选择 ,子序列乘积为 ,能够获得胜利;
对于第二次游戏,辉夜可以选择的子序列有 \{5\},\{14\},\{5,14\},乘积分别为 ,一定无法获得胜利。