← Home
#include <bits/stdc++.h>
using ll = long long;
using ld = long double;
using ull = unsigned long long;
using namespace std;
template <class T>
using Ve = vector<T>;
#define ALL(v) (v).begin(), (v).end()
#define pii pair<ll, ll>
#define rep(i, a, b) for(ll i = (a); i <= (b); ++i)
#define per(i, a, b) for(ll i = (a); i >= (b); --i)
#define pb push_back
bool Mbe;
ll read() {
    ll x = 0, f = 1; char ch = getchar();
    while(ch < '0' || ch > '9') {if(ch == '-') f = -1; ch = getchar();}
    while(ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar();
    return x * f;
}
void write(ll x) {
    if(x < 0) putchar('-'), x = -x;
    if(x > 9) write(x / 10);
    putchar(x % 10 + '0');
}
const ll N = 6e5 + 9, INF = 1e9;
ll n, m, a[N], b[N], pos[N], bel[N];
Ve<ll> vec[N];
ll tr[N << 2], tag[N << 2];
void Pushtag(ll x, ll k) {
    tr[x] += k, tag[x] += k;
}
void Pushup(ll x) {
    tr[x] = min(tr[x << 1], tr[x << 1 | 1]);
}
void Build(ll x, ll l, ll r) {
    tag[x] = 0;
    if(l == r) return tr[x] = (-l % m + m) % m, void();
    ll mid = (l + r) >> 1;
    Build(x << 1, l, mid), Build(x << 1 | 1, mid + 1, r);
    Pushup(x);
}
void Pushdown(ll x) {
    if(!tag[x]) return ;
    Pushtag(x << 1, tag[x]);
    Pushtag(x << 1 | 1, tag[x]);
    tag[x] = 0;
}
void Upd(ll x, ll l, ll r, ll ql, ll qr, ll k) {
    if(ql <= l && r <= qr) return Pushtag(x, k), void();
    ll mid = (l + r) >> 1;
    Pushdown(x);
    if(ql <= mid) Upd(x << 1, l, mid, ql, qr, k);
    if(qr > mid) Upd(x << 1 | 1, mid + 1, r, ql, qr, k);
    Pushup(x);
}
set<ll> S;
void Ext(ll x, ll l, ll r) {
    if(tr[x]) return ;
    if(l == r) {
        tr[x] = INF;
        if(!vec[l].empty()) S.insert(l);
        return ;
    }
    ll mid = (l + r) >> 1;
    Pushdown(x);
    Ext(x << 1, l, mid), Ext(x << 1 | 1, mid + 1, r);
    Pushup(x);
}
void solve() {
    n = read(), m = read();
    rep(i, 1, n * m) a[i] = read();
    rep(i, 0, n * m * 2) pos[i] = 0, vec[i].clear();
    rep(i, 1, n * m) b[i] = read(), pos[b[i]] = i;
    rep(i, 1, n * m) bel[i] = (i - 1) / m + 1;
    bool ok = 0;
    ll ed = n * m;
    rep(i, 1, n * m) {
        if(!pos[a[i]]) ok = 1;
        else if(i > 1) {
            if(pos[a[i]] - i < pos[a[i - 1]] - (i - 1)) ok = 1;
            if(pos[a[i - 1]] < m * bel[i - 1] && pos[a[i]] - i > pos[a[i - 1]] - (i - 1)) ok = 1;
        }
        if(ok) {
            ll L = (bel[i] - 1) * m + 1;
            if(L + (L + m - i) > pos[a[L]]) ed = L - 1;
            else ed = i - 1;
            break;
        }
    }
    write(n * m - ed), putchar('\n');
    if(ed == n * m) return ;
    Ve<pii> ans;
    if(ed == 0) {
        per(i, n * m, 1) ans.pb({1, b[i]});
    }
    else {
        ll j = 0;
        rep(i, 1, ed) {
            ++j;
            while(b[j] != a[i]) vec[i - 1].pb(b[j]), ++j;
        }
        rep(i, pos[a[ed]] + 1, n * m) vec[ed].pb(b[i]);
        S.clear();
        Build(1, 0, ed), Ext(1, 0, ed);
        while(!S.empty()) {
            ll u = *S.rbegin();
            ans.pb({bel[u] + 1, vec[u].back()});
            vec[u].pop_back();
            if(u < ed) Upd(1, 0, ed, u + 1, ed, -1);
            if(vec[u].empty()) S.erase(u);
            Ext(1, 0, ed);
        }
    }
    for(auto [u, v] : ans) write(u), putchar(' '), write(v), putchar('\n');
}
bool Med;
int main() {
    cerr << fabs(&Med - &Mbe) / 1048576.0 << "MB\n";
    ll T = read();
    while(T--) solve();
    cerr << "\n" << clock() * 1.0 / CLOCKS_PER_SEC * 1000 << "ms\n";
    return 0;
}
/*
....:---:::::::..::-=====--:--::---===.        :=====---=======++++++==+++++++****+*++++***++=++=-==
.....:---::::.     .:-==-::-==--=====.       ::-=====--========*******+++++*********===+**#*++**+++=
......:-::::.        .--:::----=+++=:      .=+======+-======+==*******+++**********=-==++*****+++==:
.......::::-.         .--:::--=++++=:    . .=======+=-===++++++*************######=-====+***#*+++==:
.......::::-==.       .-:---:-=+**+=-:.  ...-=====+=-==+++++++*######****#######*=-======*####***=::
......::::---=- :   .:-:.-==::===++=------===========++++++++*#############%%%#*=======-=+#%%%#=:...
::::::::::-----:..::-::..:-:--====**+===============++++++++*########%%%%%%##*+=+++=======+#%%%#:...
::::::::-:-----=====--==+++***######%%####***++===+++++++++*#######%%%%%#*++====+++++======+##%%%:..
::::::::-------===+++++*******#######%%%%%%%%%%%%#######**#%%%%%%%%%%%%%%%%%%##*++==+++====+*%%@@=-=
:::::::::----==+++++++*********######%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%*+=++++++++*#=..:
:::::::::-=++++++++++***********########%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*+++++=---:.-=
:::::::-=+++++++++++++++***********#######%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%++++=-==-.-%
:::::-++++++++++++++++++++++++++********######%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=+===**=--
::::-+++++++++++++++++++++++++++++++++*******#####%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+=--**=-=
::::=++++++++++++++++==============++++++++++******######%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@*==*++===
::::=++++++++++=================+=+++++++++++++++++*******#############%%%%%@@@@@@@@@@@@@@@@++*++===
::::=+++++++=====--========++++++++++++++++===++++++++++++++++++++*******###%%%%@@@@@@@@@@@@%=+++===
:::::=++++=====-==========+++++++++++++++++++++=+++++*********+++++++++*****###%%%@@@@@@@@@@@#=++===
::::::=++========----====+++++++++++++=-----+*%#*++*****#####*****++++********###%%%@@@@@@@@@@#=+===
:::::::-=+=======-::--===++++++++++**-:....:+:=@@%++**###########***++++********###%%%@@@@@@@@@#====
:::::::::-======-:..-:===+++++++++**+::........*@@#=**##############**++++*++*****##%%%%@@@@@@@@*+==
::::::::--:-====-....:===+++++++++***:........:*@@*+**#######%%%%%####**+=++++++****###%%%@@@@@@%*==
::::::::------==-:...-===+++++++++***=::....:-*@%*+**########%%%%%######**===++++++***##%%@@@@@@@#==
::::::::::----==--::-====+++++++++****+==--=+*#*****##########%%%%%%#####**=---==-==++***+*%@@@@@#==
:::::::::---:-===========+++++++++*****************############%%%%#######**+-  :..:-=+=:..:*%@@%#+*
:::::::::::--=============+++++++++****************#############%########****=. ======+++===+*#%%#+#
:::::::-...:-=============+++++++++++*************######################**++**--+=+===+++++***+-=*+*
::....-------===============++++++++++*************#####################**+=+*+====+++++++++++=:.-**
::...:---================++++++++++++++************#####################*+===*====+++++++++++++++***
:::--====================--=+++++++++++++***********###################**+=--======++++++++*++++**++
::.:-====================   =+++++++++++++***********#################**++=----========+++++++++**=:
:...-=====================-==+++++++++++++++***********##############**++==----==============+++**=:
:::::--======-==================+++++++++++++************#########****+++==----==============+++*#=:
--:-------------==================+++++++++++++**********************+++===--================+++*#=:
--------:::------===================+++++++++++++******************+++++===-================+++*##=:
------==::::::-----===================+++++++++++++++++******+++++++++++++===================+*###=:
======+=::::::::::---======================++++++++++++++++++++++++++++++++================+##*****+
++==+++=:::::::::::::---======================================++++++***++++++=+==+==+===+++#@%++++++
++++++++:::::::::::::::--==============----------------=====++++++*********++++++++++++++=-#@@*=++++
**++++++-::::::::::::----============-------------========++++++**************+++++++++++..+@@%=++++
=======-:::::::::::::::::-============---------========+++++++************************+*=..=%@@+++++
******#+:::::::::::-------===========================++++++*****************************-..-#@@*=+++
********-::---------------========================++++++++******************************:..:*@@#=+++
++++++++-------------===========================++++++++*******************#####*******+...:+%@%++++
+++++++*=-------========++==================++++++++++*****************###########*****+...:=#@@++++
+++++++*=-=======++++++++++============++++++++++*******************###############****+...-=*@@*+++
+++++++*========+++++++++++=========+++++++++++***********#*********################***+..-==*@@*=++
+++++++*+======++++++++++++=======++++++++++++**********#########**#################***+.:-:-*@@*+++
+++++++*======++++++++++++======+++++++++++++++*********############################***+:.:.-*%@#=++
++++++++=======+++++++++++=====+++++++++++++++**********############################****:...-+%@#=++
*/