#include <bits/stdc++.h>
using namespace std;
const int maxN = 10;
const double eps = 1e-8;
struct ball {
  double x, v, m;
  int id;
  ball &operator+=(ball b) {
    if (fabs(x - b.x) < eps) {
      v = ((m - b.m) * v + 2.0 * b.v * b.m) / (m + b.m);
    }
    return *this;
  }
  ball() { x = v = m = 0; }
};
ball a[maxN];
double ans[maxN];
bool operator<(ball a, ball b) { return a.x < b.x; }
int main() {
  int n;
  double t;
  cin >> n >> t;
  for (int i = 0; i < n; i++) {
    cin >> a[i].x >> a[i].v >> a[i].m;
    a[i].id = i;
  }
  sort(a, a + n);
  while (t > eps) {
    double dt = t;
    for (int i = 0; i < n - 1; i++) {
      if (fabs(a[i].v - a[i + 1].v) >= eps) {
        double cur = (a[i + 1].x - a[i].x) / (a[i].v - a[i + 1].v);
        if (cur > eps) dt = min(dt, cur);
      }
    }
    for (int i = 0; i < n; i++) {
      a[i].x += a[i].v * dt;
    }
    for (int i = 0; i < n - 1; i++) {
      ball cur = a[i];
      a[i] += a[i + 1];
      a[i + 1] += cur;
    }
    t -= dt;
  }
  for (int i = 0; i < n; i++) {
    ans[a[i].id] = a[i].x;
  }
  for (int i = 0; i < n; i++) {
    printf("%.7f\n", ans[i]);
  }
  return 0;
}
