#include <bits/stdc++.h>
using namespace std;
const int MAXN = 20;
double x[MAXN], v[MAXN], m[MAXN], t, ta, tc;
int p[MAXN], n, bc;
bool comp(int i, int j) { return x[i] < x[j]; }
int main() {
  scanf("%d%lf", &n, &t);
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf%lf", x + i, v + i, m + i);
    p[i] = i;
  }
  sort(p, p + n, comp);
  ta = 0;
  while (ta < t) {
    double min = 250;
    for (int i = 0; i < n - 1; i++)
      if (v[p[i]] > v[p[i + 1]]) {
        tc = (x[p[i + 1]] - x[p[i]]) / (v[p[i]] - v[p[i + 1]]);
        if (tc < min) min = tc, bc = i;
      }
    if (ta + min > t) min = t - ta;
    for (int i = 0; i < n; i++) x[i] += v[i] * min;
    double d1 = ((m[p[bc]] - m[p[bc + 1]]) * v[p[bc]] +
                 2 * m[p[bc + 1]] * v[p[bc + 1]]) /
                (m[p[bc]] + m[p[bc + 1]]);
    double d2 =
        ((m[p[bc + 1]] - m[p[bc]]) * v[p[bc + 1]] + 2 * m[p[bc]] * v[p[bc]]) /
        (m[p[bc + 1]] + m[p[bc]]);
    v[p[bc]] = d1;
    v[p[bc + 1]] = d2;
    ta += min;
  }
  for (int i = 0; i < n; i++) printf("%lf\n", x[i]);
  return 0;
}
