CF2004D Colored Portals

Description

There are $ n $ cities located on a straight line. The cities are numbered from $ 1 $ to $ n $ . Portals are used to move between cities. There are $ 4 $ colors of portals: blue, green, red, and yellow. Each city has portals of two different colors. You can move from city $ i $ to city $ j $ if they have portals of the same color (for example, you can move between a "blue-red" city and a "blue-green" city). This movement costs $ |i-j| $ coins. Your task is to answer $ q $ independent queries: calculate the minimum cost to move from city $ x $ to city $ y $ .

Input Format

The first line contains a single integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. The first line of each test case contains two integers $ n $ and $ q $ ( $ 1 \le n, q \le 2 \cdot 10^5 $ ) — the number of cities and the number of queries, respectively. The second line contains $ n $ strings of the following types: BG, BR, BY, GR, GY, or RY; the $ i $ -th of them describes the portals located in the $ i $ -th city; the symbol B indicates that there is a blue portal in the city, G — green, R — red, and Y — yellow. The $ j $ -th of the next $ q $ lines contains two integers $ x_j $ and $ y_j $ ( $ 1 \le x_j, y_j \le n $ ) — the description of the $ j $ -th query. Additional constraints on the input: - the sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ ; - the sum of $ q $ over all test cases does not exceed $ 2 \cdot 10^5 $ .

Output Format

For each query, print a single integer — the minimum cost to move from city $ x $ to city $ y $ (or $ -1 $ if it is impossible).