小 Leticija 正在准备一场编程考试。尽管她已经解决了很多任务,但仍有一个任务未解决,因此她向你寻求帮助。
给你一个单词 $S$ 和 $Q$ 个询问。在每个询问中,给你正整数 $A, B, C$ 和 $D$。设单词 $X$ 由单词 $S$ 中位置 $A$ 到 $B$ 之间的字母组成,单词 $Y$ 由单词 $S$ 中位置 $C$ 到 $D$ 之间的字母组成。对于每个询问,你必须回答是否可以通过某种方式重新排列单词 $Y$ 中的字母来得到单词 $X$。
输入格式
第一行包含一个单词 $S$($1 \le |S| \le 50\,000$)。$|S|$ 表示单词 $S$ 的长度,该单词仅由英文小写字母组成。
第二行包含一个正整数 $Q$($1 \le Q \le 50\,000$)。
接下来的 $Q$ 行,每行包含四个整数 $A, B, C$ 和 $D$($1 \le A \le B \le |S|$ 且 $1 \le C \le D \le |S|$)。
输出格式
对于每个询问,如果可以,输出 “DA”(克罗地亚语中的“是”),否则输出 “NE”(克罗地亚语中的“否”)。
数据范围
在占总分 50% 的测试数据中,满足:$1 \le |S| \le 1000$ 且 $1 \le Q \le 1000$。
样例
输入样例 1
kileanimal 2 2 2 7 7 1 4 6 7
输出样例 1
DA NE
输入样例 2
abababba 2 3 5 1 3 1 2 7 8
输出样例 2
DA DA
输入样例 3
vodevovode 2 5 8 3 6 2 5 3 6
输出样例 3
NE DA
说明
第三个样例的解释:
在第一个询问中,$X = \text{"vovo"}$,$Y = \text{"devo"}$。在第二个询问中,$X = \text{"odev"}$,$Y = \text{"devo"}$。