#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp> // Common file
//#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_int_update
 
using namespace std;
//using namespace __gnu_pbds;
//typedef tree< pair<int, int>, null_type, less<pair<int, int>>, rb_tree_tag, tree_order_statistics_int_update>
//ordered_set;
int dx[] = {0, 1, 0, -1};
int dy[] = {-1, 0, 1, 0};
#define X first
#define Y second
#define int long long int 
const int MAXN = (int)1e6 + 10;
const int MOD = 1000000007;

int K, n;
int tree[4 * MAXN];

void build(int id, int tl, int tr){
    if(tl > tr){
        return;
    }
    if( tl == tr ){
        tree[id] = K;
        return;
    }
    int tm = (tl + tr) / 2;
    build(id * 2, tl, tm);
    build(id * 2 + 1, tm + 1, tr);
    tree[id] = tree[id * 2] + tree[id * 2 + 1];
}

void update(int id, int tl, int tr, int val){
    if(tl > tr){
        return;
    }
    if( tl == tr ){
        tree[id] -= val;
        return;
    }
    //check if we can go left side
    int tm = (tl + tr) / 2;
    if(tree[id * 2] >= val){
        update(id * 2, tl, tm, val);
    } else if( tree[id * 2 + 1] >= val ){
        update(id * 2 + 1, tm + 1, tr, val);
    }
    //after updation change its parent
    tree[id] = tree[id * 2] + tree[id * 2 + 1];
}

int res = 0, used = 0;

void get_ans(int id, int tl, int tr){
    if( tl > tr ){
        return;
    }
    if(tl == tr){
        if(tree[id] < K)
            res += tree[id], used++;
        return;
    }
    int tm = (tl + tr)  / 2;
    if((tm - tl + 1) * K != tree[id * 2] )
        get_ans(id * 2, tl, tm);
    if(  (tr - (tm + 1) + 1) * K  != tree[id * 2 + 1] )
        get_ans(id * 2 + 1, tm + 1, tr);
}

void solve(){
    cin >> K >> n;
    build(1, 0, n - 1);
    for(int i = 0; i < n; ){
        string ch; cin >> ch;
        if( ch == "b" ){
            int times; cin >> times;
            int num; cin >> num;
            for(int k = 0; k < times; ++k, ++i){
                update(1, 0, n - 1, num);
            }
        } else {
            int num = stoi(ch);
            update(1, 0, n - 1, num);
            ++i;
        }
        /*for(int i = 1; i <= 7; ++i){
            cout << tree[i] << " ";
        }
        cout << '\n';*/
    }
    res = 0, used = 0;
    get_ans(1, 0, n - 1);
    cout << used << " " << res << '\n';
    



    
}
 
int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr); 
    int t; cin >> t;
    while(t--)
        solve();
    return 0;
} 