#include<cstdio>
#include<vector>
#include<algorithm>
#include<string.h>
#include<iostream>
#define mp make_pair
using namespace std;
typedef long long int ll;
bool cmp(pair<ll, ll> &a, pair<ll, ll> &b){
if(a.second == b.second) return a.first < b.first;
return a.second > b.second;
}
ll ans[300001], a[100007], b[100007], n, m, initial_len, mark[100007], count_filter, max_up, n1, n2;
vector< pair<ll, ll> > bat, filter;
void initialize(){
for(int j=0; j<300001; j++)
ans[j] = 0;
for(int j=0; j<100001; j++){
a[j] = 0;
b[j] = 0;
mark[j] = 0;
}
bat.clear();
filter.clear();
//selected.clear();
return;
}
void multiply(){
for(int j=0; j<n1; j+=17){
ll temp = 0, curr, counts = 0;
if(j + 16 < n1) curr = j+16;
else{
curr = n1 - 1;
counts = 17 - (n1 - 1 - j + 1);
}
while(counts < 17){
temp = temp*10 + a[curr];
curr--;
counts++;
}
curr = j;
ll carry = 0;
for(int i = n2 - 1; i >= 0; i--){
ans[curr] += temp*b[i] + carry;
carry = ans[curr]/10;
ans[curr] = ans[curr] % 10;
curr++;
}
while(carry){
ans[curr++] = carry % 10;
carry /= 10;
}
}
return;
}
/*void set_bits(int day){
int start = day;
for(int j=0; j < initial_len; j++)
ans[start++] += k[j];
return;
}*/
void build_ans(){
n2 = 0;
for(int j=max_up; j >= 0; j--)
b[n2++] = mark[j];
//n2 = max_up + 1;
multiply();
return;
}
void select_bats(){
int avail = m;
for(int j=0; j < count_filter && avail > 0; j++){
pair<ll, ll> p = filter[j];
if(j == 0) max_up = p.second;
if(mark[ p.second ] == 0 || j == count_filter - 1){
//printf("%d %d\n",p.first, p.second);
for(ll i=p.first; i <= p.second; i++)
mark[i] = 1;
avail--;
}
else{
ll i;
for(i = p.second; i >= p.first; i--)
if(mark[i] == 1) continue;
else break;
if(i < p.first) continue;
if(i > filter[j+1].second || (i - p.first) > (filter[j+1].second - filter[j+1].first)){
//printf("%d %d\n",p.first, p.second);
for(int t=p.first; t <= p.second; t++)
mark[t] = 1;
avail--;
}
}
}
return;
}
void filter_bats(){
ll left = bat[0].first, right = bat[0].second;
for(int j=0; j<n; j++){
pair<int, int> p = bat[j];
if(j!= 0 && p.first >= left && right >= p.second ) continue;
filter.push_back(p);
if(left > p.first) left = p.first;
if(right < p.second) right = p.second;
}
count_filter = filter.size();
return;
}
void solve(){
sort(bat.begin(), bat.end(), cmp);
/*for(int j=0; j<n; j++)
printf("%d %d\n",bat[j].first, bat[j].second);*/
filter_bats();
select_bats();
build_ans();
/*for(int j=0; j<n1; j++)
printf("%lld ",a[j]);
printf("\n");
for(int j=0; j<n2; j++)
printf("%lld ",b[j]);
printf("\n");*/
ll carry = 0;
for(int j=0; j < 300001; j++){
ans[j] += carry;
carry = ans[j]/2;
ans[j] = ans[j] % 2;
}
int j = 300000;
while(ans[j] == 0 && j >= 0)
j--;
if(j < 0){
printf("0\n");
return;
}
for(; j >= 0; j--)
printf("%lld",ans[j]);
printf("\n");
return;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
initialize();
scanf("%lld %lld",&n ,&m);
for(int j=0; j<n; j++){
ll l, r;
scanf("%lld %lld",&l ,&r);
bat.push_back(mp(l, r));
}
char s[100001];
scanf("%s",&s);
initial_len = strlen(s);
for(int j=0; j<initial_len; j++)
a[j] = s[initial_len - j - 1] - '0';
n1 = initial_len;
solve();
}
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlPGlvc3RyZWFtPgojZGVmaW5lIG1wIG1ha2VfcGFpcgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsOwogCmJvb2wgY21wKHBhaXI8bGwsIGxsPiAmYSwgcGFpcjxsbCwgbGw+ICZiKXsKICAgIGlmKGEuc2Vjb25kID09IGIuc2Vjb25kKSByZXR1cm4gYS5maXJzdCA8IGIuZmlyc3Q7CiAgICByZXR1cm4gYS5zZWNvbmQgPiBiLnNlY29uZDsKfQogCmxsIGFuc1szMDAwMDFdLCBhWzEwMDAwN10sIGJbMTAwMDA3XSwgbiwgbSwgaW5pdGlhbF9sZW4sIG1hcmtbMTAwMDA3XSwgY291bnRfZmlsdGVyLCBtYXhfdXAsIG4xLCBuMjsKIAp2ZWN0b3I8IHBhaXI8bGwsIGxsPiA+IGJhdCwgZmlsdGVyOwogCnZvaWQgaW5pdGlhbGl6ZSgpewogICAgZm9yKGludCBqPTA7IGo8MzAwMDAxOyBqKyspCiAgICAgICAgYW5zW2pdID0gMDsKIAogICAgZm9yKGludCBqPTA7IGo8MTAwMDAxOyBqKyspewogICAgICAgIGFbal0gPSAwOwogICAgICAgIGJbal0gPSAwOwogICAgICAgIG1hcmtbal0gPSAwOwogICAgfQogCiAgICBiYXQuY2xlYXIoKTsKICAgIGZpbHRlci5jbGVhcigpOwogICAgLy9zZWxlY3RlZC5jbGVhcigpOwogICAgcmV0dXJuOwp9CiAKdm9pZCBtdWx0aXBseSgpewogICAgZm9yKGludCBqPTA7IGo8bjE7IGorPTE3KXsKICAgICAgICBsbCB0ZW1wID0gMCwgY3VyciwgY291bnRzID0gMDsKICAgICAgICBpZihqICsgMTYgPCBuMSkgY3VyciA9IGorMTY7CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgY3VyciA9IG4xIC0gMTsKICAgICAgICAgICAgY291bnRzID0gMTcgLSAobjEgLSAxIC0gaiArIDEpOwogICAgICAgIH0KICAgICAgICB3aGlsZShjb3VudHMgPCAxNyl7CiAgICAgICAgICAgIHRlbXAgPSB0ZW1wKjEwICsgYVtjdXJyXTsKICAgICAgICAgICAgY3Vyci0tOwogICAgICAgICAgICBjb3VudHMrKzsKICAgICAgICB9CiAgICAgICAgY3VyciA9IGo7CiAgICAgICAgbGwgY2FycnkgPSAwOwogICAgICAgIGZvcihpbnQgaSA9IG4yIC0gMTsgaSA+PSAwOyBpLS0pewogICAgICAgICAgICBhbnNbY3Vycl0gKz0gdGVtcCpiW2ldICsgY2Fycnk7CiAgICAgICAgICAgIGNhcnJ5ID0gYW5zW2N1cnJdLzEwOwogICAgICAgICAgICBhbnNbY3Vycl0gPSBhbnNbY3Vycl0gJSAxMDsKICAgICAgICAgICAgY3VycisrOwogICAgICAgIH0KICAgICAgICB3aGlsZShjYXJyeSl7CiAgICAgICAgICAgIGFuc1tjdXJyKytdID0gY2FycnkgJSAxMDsKICAgICAgICAgICAgY2FycnkgLz0gMTA7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CiAKLyp2b2lkIHNldF9iaXRzKGludCBkYXkpewogICAgaW50IHN0YXJ0ID0gZGF5OwogICAgZm9yKGludCBqPTA7IGogPCBpbml0aWFsX2xlbjsgaisrKQogICAgICAgIGFuc1tzdGFydCsrXSArPSBrW2pdOwogICAgcmV0dXJuOwp9Ki8KIAp2b2lkIGJ1aWxkX2FucygpewoJbjIgPSAwOwogICAgZm9yKGludCBqPW1heF91cDsgaiA+PSAwOyBqLS0pCiAgICAgICBiW24yKytdID0gbWFya1tqXTsKICAgCS8vbjIgPSBtYXhfdXAgKyAxOwogICAgbXVsdGlwbHkoKTsKICAgIHJldHVybjsKfQogCnZvaWQgc2VsZWN0X2JhdHMoKXsKICAgIGludCBhdmFpbCA9IG07CiAgICBmb3IoaW50IGo9MDsgaiA8IGNvdW50X2ZpbHRlciAmJiBhdmFpbCA+IDA7IGorKyl7CiAgICAgICAgcGFpcjxsbCwgbGw+IHAgPSBmaWx0ZXJbal07CiAgICAgICAgaWYoaiA9PSAwKSBtYXhfdXAgPSBwLnNlY29uZDsKICAgICAgICBpZihtYXJrWyBwLnNlY29uZCBdID09IDAgfHwgaiA9PSBjb3VudF9maWx0ZXIgLSAxKXsKICAgICAgICAgICAgLy9wcmludGYoIiVkICVkXG4iLHAuZmlyc3QsIHAuc2Vjb25kKTsKICAgICAgICAgICAgZm9yKGxsIGk9cC5maXJzdDsgaSA8PSBwLnNlY29uZDsgaSsrKQogICAgICAgICAgICAgICAgbWFya1tpXSA9IDE7CiAgICAgICAgICAgIGF2YWlsLS07CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGxsIGk7CiAgICAgICAgICAgIGZvcihpID0gcC5zZWNvbmQ7IGkgPj0gcC5maXJzdDsgaS0tKQogICAgICAgICAgICAgICAgaWYobWFya1tpXSA9PSAxKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGVsc2UgYnJlYWs7CiAgICAgICAgICAgIGlmKGkgPCBwLmZpcnN0KSBjb250aW51ZTsKICAgICAgICAgICAgaWYoaSA+IGZpbHRlcltqKzFdLnNlY29uZCB8fCAoaSAtIHAuZmlyc3QpID4gKGZpbHRlcltqKzFdLnNlY29uZCAtIGZpbHRlcltqKzFdLmZpcnN0KSl7CiAgICAgICAgICAgICAgICAvL3ByaW50ZigiJWQgJWRcbiIscC5maXJzdCwgcC5zZWNvbmQpOwogICAgICAgICAgICAgICAgZm9yKGludCB0PXAuZmlyc3Q7IHQgPD0gcC5zZWNvbmQ7IHQrKykKICAgICAgICAgICAgICAgICAgICBtYXJrW3RdID0gMTsKICAgICAgICAgICAgICAgIGF2YWlsLS07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm47Cn0KIAp2b2lkIGZpbHRlcl9iYXRzKCl7CiAgICBsbCBsZWZ0ID0gYmF0WzBdLmZpcnN0LCByaWdodCA9IGJhdFswXS5zZWNvbmQ7CiAgICBmb3IoaW50IGo9MDsgajxuOyBqKyspewogICAgICAgIHBhaXI8aW50LCBpbnQ+IHAgPSBiYXRbal07CiAgICAgICAgaWYoaiE9IDAgJiYgcC5maXJzdCA+PSBsZWZ0ICYmIHJpZ2h0ICA+PSBwLnNlY29uZCApIGNvbnRpbnVlOwogICAgICAgIGZpbHRlci5wdXNoX2JhY2socCk7CiAgICAgICAgaWYobGVmdCA+IHAuZmlyc3QpIGxlZnQgPSBwLmZpcnN0OwogICAgICAgIGlmKHJpZ2h0IDwgcC5zZWNvbmQpIHJpZ2h0ID0gcC5zZWNvbmQ7CiAgICB9CiAgICBjb3VudF9maWx0ZXIgPSBmaWx0ZXIuc2l6ZSgpOwogICAgcmV0dXJuOwp9CiAKdm9pZCBzb2x2ZSgpewogICAgc29ydChiYXQuYmVnaW4oKSwgYmF0LmVuZCgpLCBjbXApOwogCiAgICAvKmZvcihpbnQgaj0wOyBqPG47IGorKykKICAgICAgICBwcmludGYoIiVkICVkXG4iLGJhdFtqXS5maXJzdCwgYmF0W2pdLnNlY29uZCk7Ki8KIAogICAgZmlsdGVyX2JhdHMoKTsKICAgIHNlbGVjdF9iYXRzKCk7CiAgICBidWlsZF9hbnMoKTsKICAgIAogICAgLypmb3IoaW50IGo9MDsgajxuMTsgaisrKQogICAgCXByaW50ZigiJWxsZCAiLGFbal0pOwogICAgcHJpbnRmKCJcbiIpOwogICAgZm9yKGludCBqPTA7IGo8bjI7IGorKykKICAgIAlwcmludGYoIiVsbGQgIixiW2pdKTsKICAgIHByaW50ZigiXG4iKTsqLwogCiAgICBsbCBjYXJyeSA9IDA7CiAgICBmb3IoaW50IGo9MDsgaiA8IDMwMDAwMTsgaisrKXsKICAgICAgICBhbnNbal0gKz0gY2Fycnk7CiAgICAgICAgY2FycnkgPSBhbnNbal0vMjsKICAgICAgICBhbnNbal0gPSBhbnNbal0gJSAyOwogICAgfQogCiAgICBpbnQgaiA9IDMwMDAwMDsKICAgIHdoaWxlKGFuc1tqXSA9PSAwICYmIGogPj0gMCkKICAgICAgICBqLS07CiAgICBpZihqIDwgMCl7CiAgICAJcHJpbnRmKCIwXG4iKTsKICAgIAlyZXR1cm47CiAgICB9CiAgICBmb3IoOyBqID49IDA7IGotLSkKICAgICAgICBwcmludGYoIiVsbGQiLGFuc1tqXSk7CiAgICBwcmludGYoIlxuIik7CiAgICByZXR1cm47Cn0KIAppbnQgbWFpbigpewogICAgaW50IHQ7CiAgICBzY2FuZigiJWQiLCZ0KTsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgaW5pdGlhbGl6ZSgpOwogICAgICAgIHNjYW5mKCIlbGxkICVsbGQiLCZuICwmbSk7CiAgICAgICAgZm9yKGludCBqPTA7IGo8bjsgaisrKXsKICAgICAgICAgICAgbGwgbCwgcjsKICAgICAgICAgICAgc2NhbmYoIiVsbGQgJWxsZCIsJmwgLCZyKTsKICAgICAgICAgICAgYmF0LnB1c2hfYmFjayhtcChsLCByKSk7CiAgICAgICAgfQogICAgICAgIGNoYXIgc1sxMDAwMDFdOwogICAgICAgIHNjYW5mKCIlcyIsJnMpOwogICAgICAgIGluaXRpYWxfbGVuID0gc3RybGVuKHMpOwogICAgICAgIGZvcihpbnQgaj0wOyBqPGluaXRpYWxfbGVuOyBqKyspCiAgICAgICAgICAgIGFbal0gPSBzW2luaXRpYWxfbGVuIC0gaiAtIDFdIC0gJzAnOwogICAgICAgIG4xID0gaW5pdGlhbF9sZW47CiAKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=