()
| 133 | } |
| 134 | |
| 135 | public static void buildst() { |
| 136 | opsize = 0; |
| 137 | for (int i = 1; i <= n << 1; i++) { |
| 138 | fa[i] = i; |
| 139 | siz[i] = 1; |
| 140 | } |
| 141 | compute(1, m, 1, m + 1); |
| 142 | for (int p = 0; p < MAXP; p++) { |
| 143 | st[m + 1][p] = m + 1; |
| 144 | } |
| 145 | for (int i = m; i >= 1; i--) { |
| 146 | st[i][0] = first[i]; |
| 147 | for (int p = 1; p < MAXP; p++) { |
| 148 | st[i][p] = st[st[i][p - 1]][p - 1]; |
| 149 | } |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | public static void main(String[] args) throws Exception { |
| 154 | FastReader in = new FastReader(System.in); |