#include <bits/stdc++.h>
using namespace std;
double fmin(double first, double second) {
  return (first - second > 1e-9) ? second : first;
}
double gettime(double xi, double Vi, double xj, double vj) {
  if (fabs(Vi - vj) <= 1e-9) return 1e40;
  double t = (xj - xi) / (Vi - vj);
  return (t < 1e-9) ? 1e40 : t;
}
int main(int argc, char **argv) {
  int N, T;
  cin >> N >> T;
  double X[N], M[N], V[N];
  for (int i = (0); i < (N); ++i) cin >> X[i] >> V[i] >> M[i];
  double now = 0;
  while (1. * T - now > 1e-9) {
    double g = T - now;
    for (int i = (0); i < (N); ++i)
      for (int j = (i + 1); j < (N); ++j)
        g = fmin(g, gettime(X[i], V[i], X[j], V[j]));
    for (int i = (0); i < (N); ++i) X[i] += V[i] * g;
    now += g;
    for (int i = (0); i < (N); ++i)
      for (int j = (i + 1); j < (N); ++j)
        if (fabs(X[i] - X[j]) < 1e-9) {
          double v1 = ((M[i] - M[j]) * V[i] + 2 * M[j] * V[j]) / (M[i] + M[j]);
          double v2 = ((M[j] - M[i]) * V[j] + 2 * M[i] * V[i]) / (M[i] + M[j]);
          V[i] = v1;
          V[j] = v2;
        }
  }
  for (int i = (0); i < (N); ++i) printf("%.20f\n", X[i]);
  return 0;
}
