rt
#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#include <cmath>
#include <vector>
using namespace std;
const int N = 39;
double G = 6.67408e-11;
double t0 = 0.01;
struct data1{
double x, y, z;
double vx, vy, vz;
double ax, ay, az;
double a, b, c, d;
double ma;
};
data1 pt, m[N];
double tt;
int n;
int main()
{
cin >> n;
cin >> tt;
for(int i = 1; i <= n; i++)
{
cin >> m[i].x >> m[i].y >> m[i].z;
cin >> m[i].ma;
cin >> m[i].vx >> m[i].vy >> m[i].vz;
}
while(tt > 0)
{
for(int i = 1; i <= n; i++)
{
m[i].ax = m[i].ay = m[i].az = 0;
for(int j = 1; j <= n; j++)
{
if(i != j)
{
double x1 = m[i].a = m[j].x - m[i].x;
double y1 = m[i].b = m[j].y - m[i].y;
double z1 = m[i].c = m[j].z - m[i].z;
m[i].d = sqrt(x1*x1 + y1*y1 + z1*z1);
m[i].ax += m[j].ma*G*m[i].a/(m[i].d * m[i].d * m[i].d);
m[i].ay += m[j].ma*G*m[i].b/(m[i].d * m[i].d * m[i].d);
m[i].az += m[j].ma*G*m[i].a/(m[i].d * m[i].d * m[i].d);
}
}
}
for(int i = 1; i <= n; i++)
{
m[i].x += t0*(m[i].vx += t0*m[i].ax);
m[i].y += t0*(m[i].vy += t0*m[i].ay);
m[i].z += t0*(m[i].vz += t0*m[i].az);
}
tt -= t0;
}
for(int i = 1; i <= n; i++)
{
printf("%.12lf %.12lf %.12lf\n", m[i].x, m[i].y, m[i].z);
}
return 0;
}