#include <bits/stdc++.h>
using namespace std;
int n, m, x, y, s, e, q, v, d[30];
double t[30][30], a[485][485], u;
int main() {
  cin >> n >> m >> s >> e, --s, --e, q = n * n;
  for (int i = 0; i < m; i++)
    cin >> x >> y, d[--x]++, d[--y]++, t[x][y] = t[y][x] = 1;
  for (int i = 0; i < n; i++) cin >> t[i][i];
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (i != j) t[i][j] *= (1 - t[i][i]) / d[i];
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
      a[i * n + j][i * n + j] = -1;
      if (i != j)
        for (int k = 0; k < n; k++)
          for (int l = 0; l < n; l++)
            a[k * n + l][i * n + j] += t[i][k] * t[j][l];
    }
  a[s * n + e][q] = -1;
  for (int i = 0; i < q; i++) {
    for (int j = v = i; j < q; j++)
      if (fabs(a[j][i]) > fabs(a[v][i])) v = j;
    for (int k = 0; k < q + 1; k++) swap(a[v][k], a[i][k]);
    u = a[i][i];
    for (int k = 0; k < q + 1; k++) a[i][k] /= u;
    for (int j = 0; j < q; j++)
      if (u = a[j][i], i != j)
        for (int k = 0; k < q + 1; k++) a[j][k] -= u * a[i][k];
  }
  for (int i = 0; i < n; i++) printf("%.9f ", a[i * n + i][q]);
}
