CF1996C Sort

Description

You are given two strings $ a $ and $ b $ of length $ n $ . Then, you are (forced against your will) to answer $ q $ queries. For each query, you are given a range bounded by $ l $ and $ r $ . In one operation, you can choose an integer $ i $ ( $ l \leq i \leq r $ ) and set $ a_i = x $ where $ x $ is any character you desire. Output the minimum number of operations you must perform such that $ \texttt{sorted(a[l..r])} = \texttt{sorted(b[l..r])} $ . The operations you perform on one query does not affect other queries. For an arbitrary string $ c $ , $ \texttt{sorted(c[l..r])} $ denotes the substring consisting of characters $ c_l, c_{l+1}, ... , c_r $ sorted in lexicographical order.

Input Format

The first line contains $ t $ ( $ 1 \leq t \leq 1000 $ ) – the number of test cases. The first line of each test case contains two integers $ n $ and $ q $ ( $ 1 \leq n, q \leq 2 \cdot 10^5 $ ) – the length of both strings and the number of queries. The following line contains $ a $ of length $ n $ . It is guaranteed $ a $ only contains lowercase latin letters. The following line contains $ b $ of length $ n $ . It is guaranteed $ b $ only contains lowercase latin letters. The following $ q $ lines contain two integers $ l $ and $ r $ ( $ 1 \leq l \leq r \leq n $ ) – the range of the query. It is guaranteed the sum of $ n $ and $ q $ over all test cases does not exceed $ 2 \cdot 10^5 $ .

Output Format

For each query, output an integer, the minimum number of operations you need to perform in a new line.

Explanation/Hint

For the first query, $ \texttt{sorted(a[1..5])} = $ abcde and $ \texttt{sorted(b[1..5])} = $ abcde, so no operations are necessary. For the second query, you need to set $ a_1 = $ e. Then, $ \texttt{sorted(a[1..4])} = \texttt{sorted(b[1..4])} = $ bcde.