We are in the process of creating a somewhat esoteric sorting algorithm to sort an array of all integers between and . The integers in can start in an arbitrary order. Besides the input order, the algorithm depends on two integers (which would be at most ) and . Here is how the algorithms works:
Partition into disjoint non-empty subarrays , , ..., such that such that concatenating them in order produces .
Sort each subarray individually.
Choose up to of the subarrays, and swap any two of them any number of times.
For example, consider and . A possible partition into disjoint subarrays is:
We want to show the algorithm is good for distributed environments by finding, for a fixed input and value of , the maximum number of partitions such that, choosing the partitions and swaps wisely, we can achieve a sorting of the original order. Can you help us to calculate that ?
输入格式
The first line of the input gives the number of test cases, .
test cases follow. Each test case consists of two lines. The first line contains two integers and , as described above.
The second line of the test case contains integers , , ..., represting array .
输出格式
For each test case, output one line containing Case #x: y, where is the test case number (starting from 1) and is the maximum possible value for the parameter .