「RiOI-03」3-2

题目背景

> Heart beat to death[.](https://www.luogu.com.cn/problem/P9304)

题目描述

给定一个正整数 $n$。将 $[0,2^n)$ 中每个整数的二进制最低 $n$ 位**从低到高**依次写在一个 $2^n\times n$ 的矩阵上。**矩阵两维的下标都从 $0$ 开始。** 如,当 $n=3$ 时,矩阵是这样的: ![](https://cdn.luogu.com.cn/upload/image_hosting/5f6v9pru.png?x-oss-process=image/resize,m_lfit,h_200,w_265) 给定 $q$ 次询问,每次询问这个矩阵下标为 $(x,y)$ 的格子所在的四连通块大小对 $998244353$ 取模的值。

输入输出格式

输入格式


第一行两个正整数 $n,q$。 接下来 $q$ 行,每行两个非负整数 $x,y$,表示一次询问。

输出格式


输出 $q$ 行,每行一个正整数,表示每次询问答案对 $998244353$ 取模的值。

输入输出样例

输入样例 #1

2 2
1 1
2 0

输出样例 #1

3
1

说明

#### 【样例 #1 解释】 ![](https://cdn.luogu.com.cn/upload/image_hosting/4mglp4cn.png?x-oss-process=image/resize,m_lfit,h_200) 图为 $n=2$ 时的矩阵,其中同一个颜色的为一个四连通块。 *** #### 【数据范围】 **本题开启捆绑测试。** | $\text{SubTask}$ | 分值 | $n\le$ | $q\le$ | | :----------: | :----------: | :----------: | :----------: | | $0$ | $5$ | $15$ | $15$ | | $1$ | $20$ | $15$ | $5\times 10^5$ | | $2$ | $25$ | $5\times 10^3$ | $5\times 10^3$ | | $3$ | $50$ | $10^{18}$ | $5\times 10^5$ | 对于 $100\%$ 的数据,$0\le y\lt n\le 10^{18}$,$0\le x\lt \min(2^n, 10^{18})$,$1\le q\le 5\times 10^5$。 **请选用较快的输入输出方式。**