#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll suffix[2][1004];//this is used from ith index is there any cow left or not
ll dp[1004][1004];
ll check(vector<vector<ll>>&input,ll i)
{
ll up=0,down=1,both=2;
if(input[0][i]==1 && input[1][i]==1){
return both;
}
if(input[0][i]==0 && input[1][i]==1){
return down;
}
return up;
}
ll recursion2(ll start,ll end,ll k,vector<vector<ll>>&input,vector<vector<pair<ll,ll>>>&axis)
{
if(k<=0 && (suffix[0][start]>=1 || suffix[1][start]>=1)){
return 10000000008;//rectangle finish but cows left
}
if(k==0 && suffix[0][start]==0 && suffix[1][start]==0){
return 0;
}
if(start>end && k>0){
return 10000000008;//cows finish but rectangles remaining
}
if(dp[start][k]!=-1){
return dp[start][k];
}
ll Lup=-1,Ldown=-1,Rup,Rdown,anss=100000000000000;
for(ll i=start;i<=end;i++)
{
ll ss=check(input,i);
if(ss==0 && Lup==-1){Lup=i;Rup=i;}
if(ss==1 && Ldown==-1){Ldown=i;Rdown=i;}
if(ss==2){
if(Lup==-1){Lup=i;Rup=i;}
if(Ldown==-1){Ldown=i;Rdown=i;}
}
if(ss==0){
Rup=i;
if(Ldown!=-1){
ll t,x;
if(Lup<Ldown){t=Lup;x=0;
}else{
t=Ldown;x=1;
}
ll cost=2*(abs(axis[0][i].second-axis[x][t].second)+1);//Type C rectangle
anss=min(anss,cost+recursion2(i+1,end,k-1,input,axis));
cost=(abs(axis[1][Rdown].second-axis[1][Ldown].second)+1)+(abs(axis[0][Rup].second-axis[0][Lup].second)+1);
anss=min(anss,cost+recursion2(i+1,end,k-2,input,axis));//Combination of Type A and B rectangle till ith index
}
else{
ll cost=(axis[0][i].second-axis[0][Lup].second+1);
anss=min(anss,cost+recursion2(i+1,end,k-1,input,axis));//only Type A rectangle
}
}
if(ss==1){
Rdown=i;
if(Lup!=-1){ll t,x;
if(Lup<Ldown){t=Lup;x=0;
}else{t=Ldown;x=1;
}
ll cost=2*(abs(axis[1][i].second-axis[x][t].second)+1);
anss=min(anss,cost+recursion2(i+1,end,k-1,input,axis));//Type C rectangle
cost=(abs(axis[1][Rdown].second-axis[1][Ldown].second)+1)+(abs(axis[0][Rup].second-axis[0][Lup].second)+1);
anss=min(anss,cost+recursion2(i+1,end,k-2,input,axis)); //Combination of Type A and B rectangle till ith index
}
else{
ll cost=(abs(axis[1][i].second-axis[1][Ldown].second)+1);
anss=min(anss,cost+recursion2(i+1,end,k-1,input,axis));//only Type B rectangle
}
}
if(ss==2){
Rup=i;Rdown=i;
ll t,x;
if(Lup<Ldown){
t=Lup;x=0;
}else{
t=Ldown;x=1;
}
ll cost=2*(abs(axis[1][i].second-axis[x][t].second)+1);
anss=min(anss,cost+recursion2(i+1,end,k-1,input,axis));//Type C rectangle
}
}
return dp[start][k]=anss;
}
void solve()
{
ll n,k,b;
cin>>n>>k>>b;
vector<pair<ll,ll>>abc,def,mix;
for(ll i=0,u,v;i<n;++i){
cin>>u>>v;
if(u==1){
abc.push_back({u,v});
}else{
def.push_back({u,v});
}
mix.push_back({u,v});
}
sort(abc.begin(),abc.end());sort(def.begin(),def.end());
sort(mix.begin(),mix.end(),[](pair<ll,ll>&aa,pair<ll,ll>&bb){
if(aa.second==bb.second){return aa.first<bb.first;}
return aa.second<bb.second;
});
ll col=1,prev=mix[0].second;
for(ll i=1;i<mix.size();++i){
if(mix[i].second!=prev){
col++;
}
prev=mix[i].second;
}
vector<vector<ll>>input(2,vector<ll>(col));
vector<vector<pair<ll,ll>>>axis(2,vector<pair<ll,ll>>(col));
for(ll i=0,j=0;i<mix.size();++i){
if(i+1<mix.size()){
if(mix[i].second==mix[i+1].second){
input[0][j]=1;input[1][j]=1;
axis[0][j]={1,mix[i].second};
axis[1][j]={2,mix[i].second};
i++;j++;
continue;
}
}
if(mix[i].first==1){
input[0][j]=1;
axis[0][j]={1,mix[i].second};
j++;
}
else{
axis[1][j]={2,mix[i].second};
input[1][j]=1;j++;
}
for(ll i=0;i<2;++i)//calculating suffix sum from right to left
{
for(ll j=col-1;j>=0;--j){
if(input[i][j]==1){
suffix[i][j]=1+suffix[i][j+1];
}
else{
suffix[i][j]=suffix[i][j+1];
}
}
}
}
memset(dp,-1,sizeof(dp));cout<<recursion2(0,col-1,k,input,axis)<<endl;
memset(suffix, 0, sizeof(suffix));
}
int main()
{
int t=1;
cin >> t;
while (t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCmxsIHN1ZmZpeFsyXVsxMDA0XTsvL3RoaXMgaXMgdXNlZCBmcm9tIGl0aCBpbmRleCBpcyB0aGVyZSBhbnkgY293IGxlZnQgb3Igbm90CmxsIGRwWzEwMDRdWzEwMDRdOwpsbCBjaGVjayh2ZWN0b3I8dmVjdG9yPGxsPj4maW5wdXQsbGwgaSkKewogICAgbGwgdXA9MCxkb3duPTEsYm90aD0yOwogICAgaWYoaW5wdXRbMF1baV09PTEgJiYgaW5wdXRbMV1baV09PTEpewogICAgICAgIHJldHVybiBib3RoOwogICAgfQogICAgaWYoaW5wdXRbMF1baV09PTAgJiYgaW5wdXRbMV1baV09PTEpewogICAgICAgIHJldHVybiBkb3duOwogICAgfQogICAgcmV0dXJuIHVwOwp9CmxsIHJlY3Vyc2lvbjIobGwgc3RhcnQsbGwgZW5kLGxsIGssdmVjdG9yPHZlY3RvcjxsbD4+JmlucHV0LHZlY3Rvcjx2ZWN0b3I8cGFpcjxsbCxsbD4+PiZheGlzKQp7CiAgICBpZihrPD0wICYmIChzdWZmaXhbMF1bc3RhcnRdPj0xIHx8IHN1ZmZpeFsxXVtzdGFydF0+PTEpKXsKICAgICAgICByZXR1cm4gMTAwMDAwMDAwMDg7Ly9yZWN0YW5nbGUgZmluaXNoIGJ1dCBjb3dzIGxlZnQKICAgIH0KICAgIGlmKGs9PTAgJiYgc3VmZml4WzBdW3N0YXJ0XT09MCAmJiBzdWZmaXhbMV1bc3RhcnRdPT0wKXsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGlmKHN0YXJ0PmVuZCAmJiBrPjApewogICAgICAgIHJldHVybiAxMDAwMDAwMDAwODsvL2Nvd3MgZmluaXNoIGJ1dCByZWN0YW5nbGVzIHJlbWFpbmluZwogICAgfQogICAgaWYoZHBbc3RhcnRdW2tdIT0tMSl7CiAgICAgICAgcmV0dXJuIGRwW3N0YXJ0XVtrXTsKICAgIH0KICAgIGxsIEx1cD0tMSxMZG93bj0tMSxSdXAsUmRvd24sYW5zcz0xMDAwMDAwMDAwMDAwMDA7CiAgICBmb3IobGwgaT1zdGFydDtpPD1lbmQ7aSsrKQogICAgewogICAgICAgIGxsIHNzPWNoZWNrKGlucHV0LGkpOwogICAgICAgIGlmKHNzPT0wICYmIEx1cD09LTEpe0x1cD1pO1J1cD1pO30KICAgICAgICBpZihzcz09MSAmJiBMZG93bj09LTEpe0xkb3duPWk7UmRvd249aTt9CiAgICAgICAgaWYoc3M9PTIpewogICAgICAgICAgICBpZihMdXA9PS0xKXtMdXA9aTtSdXA9aTt9CiAgICAgICAgICAgIGlmKExkb3duPT0tMSl7TGRvd249aTtSZG93bj1pO30KICAgICAgICB9CiAgICAgICAgaWYoc3M9PTApewogICAgICAgICAgICBSdXA9aTsKICAgICAgICAgICAgaWYoTGRvd24hPS0xKXsKICAgICAgICAgICAgICAgIGxsIHQseDsKICAgICAgICAgICAgICAgIGlmKEx1cDxMZG93bil7dD1MdXA7eD0wOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgdD1MZG93bjt4PTE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsbCBjb3N0PTIqKGFicyhheGlzWzBdW2ldLnNlY29uZC1heGlzW3hdW3RdLnNlY29uZCkrMSk7Ly9UeXBlIEMgcmVjdGFuZ2xlCiAgICAgICAgICAgICAgICBhbnNzPW1pbihhbnNzLGNvc3QrcmVjdXJzaW9uMihpKzEsZW5kLGstMSxpbnB1dCxheGlzKSk7CiAgICAgICAgICAgICAgICBjb3N0PShhYnMoYXhpc1sxXVtSZG93bl0uc2Vjb25kLWF4aXNbMV1bTGRvd25dLnNlY29uZCkrMSkrKGFicyhheGlzWzBdW1J1cF0uc2Vjb25kLWF4aXNbMF1bTHVwXS5zZWNvbmQpKzEpOwogICAgICAgICAgICAgICAgYW5zcz1taW4oYW5zcyxjb3N0K3JlY3Vyc2lvbjIoaSsxLGVuZCxrLTIsaW5wdXQsYXhpcykpOy8vQ29tYmluYXRpb24gb2YgVHlwZSBBIGFuZCBCIHJlY3RhbmdsZSB0aWxsIGl0aCBpbmRleAogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICBsbCBjb3N0PShheGlzWzBdW2ldLnNlY29uZC1heGlzWzBdW0x1cF0uc2Vjb25kKzEpOwogICAgICAgICAgICAgICAgYW5zcz1taW4oYW5zcyxjb3N0K3JlY3Vyc2lvbjIoaSsxLGVuZCxrLTEsaW5wdXQsYXhpcykpOy8vb25seSBUeXBlIEEgcmVjdGFuZ2xlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoc3M9PTEpewogICAgICAgICAgICBSZG93bj1pOwogICAgICAgICAgICBpZihMdXAhPS0xKXtsbCB0LHg7CiAgICAgICAgICAgICAgICBpZihMdXA8TGRvd24pe3Q9THVwO3g9MDsKICAgICAgICAgICAgICAgIH1lbHNle3Q9TGRvd247eD0xOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbGwgY29zdD0yKihhYnMoYXhpc1sxXVtpXS5zZWNvbmQtYXhpc1t4XVt0XS5zZWNvbmQpKzEpOwogICAgICAgICAgICAgICAgYW5zcz1taW4oYW5zcyxjb3N0K3JlY3Vyc2lvbjIoaSsxLGVuZCxrLTEsaW5wdXQsYXhpcykpOy8vVHlwZSBDIHJlY3RhbmdsZQogICAgICAgICAgICAgICAgY29zdD0oYWJzKGF4aXNbMV1bUmRvd25dLnNlY29uZC1heGlzWzFdW0xkb3duXS5zZWNvbmQpKzEpKyhhYnMoYXhpc1swXVtSdXBdLnNlY29uZC1heGlzWzBdW0x1cF0uc2Vjb25kKSsxKTsKICAgICAgICAgICAgICAgIGFuc3M9bWluKGFuc3MsY29zdCtyZWN1cnNpb24yKGkrMSxlbmQsay0yLGlucHV0LGF4aXMpKTsgLy9Db21iaW5hdGlvbiBvZiBUeXBlIEEgYW5kIEIgcmVjdGFuZ2xlIHRpbGwgaXRoIGluZGV4CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIGxsIGNvc3Q9KGFicyhheGlzWzFdW2ldLnNlY29uZC1heGlzWzFdW0xkb3duXS5zZWNvbmQpKzEpOwogICAgICAgICAgICAgICAgYW5zcz1taW4oYW5zcyxjb3N0K3JlY3Vyc2lvbjIoaSsxLGVuZCxrLTEsaW5wdXQsYXhpcykpOy8vb25seSBUeXBlIEIgcmVjdGFuZ2xlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoc3M9PTIpewogICAgICAgICAgICBSdXA9aTtSZG93bj1pOwogICAgICAgICAgICBsbCB0LHg7CiAgICAgICAgICAgIGlmKEx1cDxMZG93bil7CiAgICAgICAgICAgICAgICB0PUx1cDt4PTA7CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgdD1MZG93bjt4PTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGwgY29zdD0yKihhYnMoYXhpc1sxXVtpXS5zZWNvbmQtYXhpc1t4XVt0XS5zZWNvbmQpKzEpOwogICAgICAgICAgICBhbnNzPW1pbihhbnNzLGNvc3QrcmVjdXJzaW9uMihpKzEsZW5kLGstMSxpbnB1dCxheGlzKSk7Ly9UeXBlIEMgcmVjdGFuZ2xlCiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGRwW3N0YXJ0XVtrXT1hbnNzOwp9CnZvaWQgc29sdmUoKQp7CiAgICBsbCBuLGssYjsKICAgIGNpbj4+bj4+az4+YjsKICAgIHZlY3RvcjxwYWlyPGxsLGxsPj5hYmMsZGVmLG1peDsKICAgIGZvcihsbCBpPTAsdSx2O2k8bjsrK2kpewogICAgICAgIGNpbj4+dT4+djsKICAgICAgICBpZih1PT0xKXsKICAgICAgICAgICAgYWJjLnB1c2hfYmFjayh7dSx2fSk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIGRlZi5wdXNoX2JhY2soe3Usdn0pOwogICAgICAgIH0KICAgICAgICBtaXgucHVzaF9iYWNrKHt1LHZ9KTsKICAgIH0KICAgIHNvcnQoYWJjLmJlZ2luKCksYWJjLmVuZCgpKTtzb3J0KGRlZi5iZWdpbigpLGRlZi5lbmQoKSk7CiAgICBzb3J0KG1peC5iZWdpbigpLG1peC5lbmQoKSxbXShwYWlyPGxsLGxsPiZhYSxwYWlyPGxsLGxsPiZiYil7CiAgICAgICAgaWYoYWEuc2Vjb25kPT1iYi5zZWNvbmQpe3JldHVybiBhYS5maXJzdDxiYi5maXJzdDt9CiAgICAgICAgcmV0dXJuIGFhLnNlY29uZDxiYi5zZWNvbmQ7CiAgICB9KTsKICAgIGxsIGNvbD0xLHByZXY9bWl4WzBdLnNlY29uZDsKICAgIGZvcihsbCBpPTE7aTxtaXguc2l6ZSgpOysraSl7CiAgICAgICAgaWYobWl4W2ldLnNlY29uZCE9cHJldil7CiAgICAgICAgICAgIGNvbCsrOwogICAgICAgIH0KICAgICAgICBwcmV2PW1peFtpXS5zZWNvbmQ7CiAgICB9CiAgICB2ZWN0b3I8dmVjdG9yPGxsPj5pbnB1dCgyLHZlY3RvcjxsbD4oY29sKSk7CiAgICB2ZWN0b3I8dmVjdG9yPHBhaXI8bGwsbGw+Pj5heGlzKDIsdmVjdG9yPHBhaXI8bGwsbGw+Pihjb2wpKTsKICAgIGZvcihsbCBpPTAsaj0wO2k8bWl4LnNpemUoKTsrK2kpewogICAgICAgIGlmKGkrMTxtaXguc2l6ZSgpKXsKICAgICAgICAgICAgaWYobWl4W2ldLnNlY29uZD09bWl4W2krMV0uc2Vjb25kKXsKICAgICAgICAgICAgICAgIGlucHV0WzBdW2pdPTE7aW5wdXRbMV1bal09MTsKICAgICAgICAgICAgICAgIGF4aXNbMF1bal09ezEsbWl4W2ldLnNlY29uZH07CiAgICAgICAgICAgICAgICBheGlzWzFdW2pdPXsyLG1peFtpXS5zZWNvbmR9OwogICAgICAgICAgICAgICAgaSsrO2orKzsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKG1peFtpXS5maXJzdD09MSl7CiAgICAgICAgICAgIGlucHV0WzBdW2pdPTE7CiAgICAgICAgICAgIGF4aXNbMF1bal09ezEsbWl4W2ldLnNlY29uZH07CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgYXhpc1sxXVtqXT17MixtaXhbaV0uc2Vjb25kfTsKICAgICAgICAgICAgaW5wdXRbMV1bal09MTtqKys7CiAgICAgICAgfQogICAgICAgIGZvcihsbCBpPTA7aTwyOysraSkvL2NhbGN1bGF0aW5nIHN1ZmZpeCBzdW0gZnJvbSByaWdodCB0byBsZWZ0CiAgICAgICAgewogICAgICAgICAgICBmb3IobGwgaj1jb2wtMTtqPj0wOy0tail7CiAgICAgICAgICAgICAgICBpZihpbnB1dFtpXVtqXT09MSl7CiAgICAgICAgICAgICAgICAgICAgc3VmZml4W2ldW2pdPTErc3VmZml4W2ldW2orMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgIHN1ZmZpeFtpXVtqXT1zdWZmaXhbaV1baisxXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIG1lbXNldChkcCwtMSxzaXplb2YoZHApKTtjb3V0PDxyZWN1cnNpb24yKDAsY29sLTEsayxpbnB1dCxheGlzKTw8ZW5kbDsKICAgIG1lbXNldChzdWZmaXgsIDAsIHNpemVvZihzdWZmaXgpKTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgdD0xOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKQogICAgewogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==