OJ用户管理系统
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

    某个不愿意透露姓名的OJ的用户编号为号用户在OJ中的(的一个排列)。
    OJ用如下二叉树结构管理用户:每个节点代表一个用户,二叉树按用户编号形成大根堆;按照用户的形成二叉搜索树。
    现在依次进行次操作,每次给定,要求交换号用户和号用户的,依次输出每次操作后各用户在二叉树上的深度变化量之和。 
    例如,分别为2 5 1 4 6 3,交换5号和6号的,交换前后的二叉树如下 :

输入描述:

第一行输入表示数据组数
每组数据第一行输入两个整数.
第二行输入个整数 表示,保证是1到的排列.
接下来行每行输入一个整数.

输出描述:

每组数据第行输出一个整数,表示第次操作的答案.
示例1

输入

复制
1
6 1
2 5 1 4 6 3
5

输出

复制
2

备注:



保证以及.