#include<iostream>
#include<string>
#include<stdio.h>
#include<math.h>
#include <cstdlib>
float max(float *f, int n)
{
float m=f[0];
for(int i=0;i<n;i++)
{
if(f[i]>m)m=f[i];
}
return m;
}
float moy(float *f, int n)
{
float m=0;
for(int i=0;i<n;i++)m+=f[i];
return m/n;
}
using namespace std;
int main()
{
int n, i, j;
cin>>n;
while(n!=0)
{
string s;
string u[50];
string t[25];
float f[25];
float x[n], y[n], d[n];
for(int o=0;o<n;o++)
{
cin>>x[o]>>y[o];
getline(cin,s);
int m=s.size();
j=0;
float al=0;
d[o]=0;
for(i=0;i<m;i++)
{
if(s[i]==' ')
{
cout<<t[j]<<endl;
j++;
}
else
{
t[j][i]=s[i];
}
}
int e;
for(i=0;i<j;i+=2)
{
if(t[i]=="start")e=0;
if(t[i]=="walk")e=1;
if(t[i]=="turn")e=2;
switch(e)
{
case 0 :
{
al= atof( t[i+1].c_str() );
break;
}
case 1 :
{
d[o]+=atof(t[i+1].c_str());
x[o]+=atof( t[i+1].c_str() )*cos(al);
y[o]+=atof( t[i+1].c_str() )*sin(al);
break;
}
case 2 :
{
al=atof( t[i+1].c_str() );
break;
}
}
}
printf("%.4f %.4f %.5f\n",moy(x,n),moy(x,n),max(d,n));
}
cin>>n;
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWF0aC5oPgojaW5jbHVkZSA8Y3N0ZGxpYj4KZmxvYXQgbWF4KGZsb2F0ICpmLCBpbnQgbikKewogICAgZmxvYXQgbT1mWzBdOwogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgIHsKICAgICAgICBpZihmW2ldPm0pbT1mW2ldOwogICAgfQogICAgcmV0dXJuIG07Cn0KZmxvYXQgbW95KGZsb2F0ICpmLCBpbnQgbikKewogICAgZmxvYXQgbT0wOwogICAgZm9yKGludCBpPTA7aTxuO2krKyltKz1mW2ldOwogICAgcmV0dXJuIG0vbjsKfQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7CiAgICBpbnQgbiwgaSwgajsKICAgIGNpbj4+bjsKICAgIHdoaWxlKG4hPTApCiAgICB7CiAgICAgICAgc3RyaW5nIHM7CiAgICAgICAgc3RyaW5nIHVbNTBdOwogICAgICAgIHN0cmluZyB0WzI1XTsKICAgICAgICBmbG9hdCBmWzI1XTsKICAgICAgICBmbG9hdCB4W25dLCB5W25dLCBkW25dOwoKICAgICAgICBmb3IoaW50IG89MDtvPG47bysrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj54W29dPj55W29dOwogICAgICAgICAgICBnZXRsaW5lKGNpbixzKTsKICAgICAgICAgICAgaW50IG09cy5zaXplKCk7CiAgICAgICAgICAgIGo9MDsKICAgICAgICAgICAgZmxvYXQgYWw9MDsKICAgICAgICAgICAgZFtvXT0wOwogICAgICAgICAgICBmb3IoaT0wO2k8bTtpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHNbaV09PScgJykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIAljb3V0PDx0W2pdPDxlbmRsOwogICAgICAgICAgICAgICAgICAgIGorKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0W2pdW2ldPXNbaV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgICAgICBpbnQgZTsKICAgICAgICAgICAgZm9yKGk9MDtpPGo7aSs9MikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYodFtpXT09InN0YXJ0IillPTA7CiAgICAgICAgICAgICAgICBpZih0W2ldPT0id2FsayIpZT0xOwogICAgICAgICAgICAgICAgaWYodFtpXT09InR1cm4iKWU9MjsKICAgICAgICAgICAgICAgIHN3aXRjaChlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMCA6CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhbD0gYXRvZiggdFtpKzFdLmNfc3RyKCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNhc2UgMSA6CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBkW29dKz1hdG9mKHRbaSsxXS5jX3N0cigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgeFtvXSs9YXRvZiggdFtpKzFdLmNfc3RyKCkgKSpjb3MoYWwpOwogICAgICAgICAgICAgICAgICAgICAgICB5W29dKz1hdG9mKCB0W2krMV0uY19zdHIoKSApKnNpbihhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjYXNlIDIgOgogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWw9YXRvZiggdFtpKzFdLmNfc3RyKCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmludGYoIiUuNGYgJS40ZiAlLjVmXG4iLG1veSh4LG4pLG1veSh4LG4pLG1heChkLG4pKTsKICAgICAgICB9CiAgICAgICAgY2luPj5uOwogICAgfQp9Cg==
Mwo4Ny4zNDIgMzQuMzAgc3RhcnQgMCB3YWxrIDEwLjAKMi42NzYyIDc1LjI4MTEgc3RhcnQgLTQ1LjAgd2FsayA0MCB0dXJuIDQwLjAgd2FsayA2MAo1OC41MTggOTMuNTA4IHN0YXJ0IDI3MCB3YWxrIDUwIHR1cm4gOTAgd2FsayA0MCB0dXJuIDEzIHdhbGsgNQoyCjMwIDQwIHN0YXJ0IDkwIHdhbGsgNQo0MCA1MCBzdGFydCAxODAgd2FsayAxMCB0dXJuIDkwIHdhbGsgNQow
3
87.342 34.30 start 0 walk 10.0
2.6762 75.2811 start -45.0 walk 40 turn 40.0 walk 60
58.518 93.508 start 270 walk 50 turn 90 walk 40 turn 13 walk 5
2
30 40 start 90 walk 5
40 50 start 180 walk 10 turn 90 walk 5
0