CF1215C Swap Letters
Description
Monocarp has got two strings $ s $ and $ t $ having equal length. Both strings consist of lowercase Latin letters "a" and "b".
Monocarp wants to make these two strings $ s $ and $ t $ equal to each other. He can do the following operation any number of times: choose an index $ pos_1 $ in the string $ s $ , choose an index $ pos_2 $ in the string $ t $ , and swap $ s_{pos_1} $ with $ t_{pos_2} $ .
You have to determine the minimum number of operations Monocarp has to perform to make $ s $ and $ t $ equal, and print any optimal sequence of operations — or say that it is impossible to make these strings equal.
Input Format
The first line contains one integer $ n $ $ (1 \le n \le 2 \cdot 10^{5}) $ — the length of $ s $ and $ t $ .
The second line contains one string $ s $ consisting of $ n $ characters "a" and "b".
The third line contains one string $ t $ consisting of $ n $ characters "a" and "b".
Output Format
If it is impossible to make these strings equal, print $ -1 $ .
Otherwise, in the first line print $ k $ — the minimum number of operations required to make the strings equal. In each of the next $ k $ lines print two integers — the index in the string $ s $ and the index in the string $ t $ that should be used in the corresponding swap operation.
Explanation/Hint
In the first example two operations are enough. For example, you can swap the third letter in $ s $ with the third letter in $ t $ . Then $ s = $ "abbb", $ t = $ "aaab". Then swap the third letter in $ s $ and the second letter in $ t $ . Then both $ s $ and $ t $ are equal to "abab".
In the second example it's impossible to make two strings equal.