//注意类型.....还有就是开盘价尽量大 安买价来就好
#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#include <vector>
#include <cmath>
#include <sstream>
#include <algorithm>
using namespace std;
const int N = 5000+5;
typedef long long ll;
struct Node {
int r;
double p;
ll n;
};
bool cmp1(Node a, Node b) {
if(a.p == b.p) return a.n > b.n;
return a.p < b.p;
}
bool cmp2(Node a, Node b) {
if(a.p == b.p) return a.n > b.n;
return a.p > b.p;
}
vector<Node>B, S;
int main() {
string s;
double p, t;
int cnt = 1;
Node tmp;
while(cin >> s) {
tmp.r = cnt++;
if(s[0] == 'b') {
cin >> tmp.p >> tmp.n;
B.push_back(tmp);
} else if(s[0] == 's') {
cin >> tmp.p >> tmp.n;
S.push_back(tmp);
} else {
cin >> t;
int flag = 0;
for(int i=0; i<B.size(); i++) {
if(B[i].r == t) {
B[i].p = 0;
B[i].n = 0;
flag =1;
break;
}
}
if(flag == 0)
for(int i=0; i<S.size(); i++) {
if(S[i].r == t) {
S[i].p = 0;
S[i].n = 0;
break;
}
}
}
}
sort(B.begin(), B.end(), cmp2);//大-》小
sort(S.begin(), S.end(), cmp1);//小 -> 大
/* for(int i=0; i<B.size(); i++) {
cout << B[i].p << "-" << B[i].n << endl;
}
cout << endl;
for(int i=0; i<S.size(); i++) {
cout << S[i].p << "-" << S[i].n << endl;
}
*/
double fp=0;
ll fs=0;
for(int i=0; i<B.size(); i++) {
double t = B[i].p;
ll bsum = 0, ssum = 0;
for(int j=0; j<=i; j++) {
bsum += B[j].n;
}
for(int j=0; j<S.size(); j++) {
if(S[j].p <= t)
ssum += S[j].n;
else break;
}
// cout << fp << ":" << ssum << "-" << bsum << endl;
if(fs < min(ssum, bsum)) fp =t, fs = min(ssum, bsum);
}
printf("%.2f %lld", fp, fs);
return 0;
}