#include <bits/stdc++.h>
using namespace std;
const int N = 50 + 5;
int f[N][N];
long long dp[2][N][N];
int mx[N], mi[N];
bool cmp(int x1, int x2, int y1, int y2) {
  return x2 == y2 ? x1 < y1 : x2 < y2;
}
void solve() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) f[i][j] = 0x3f3f3f3f;
  }
  for (int i = 0; i < m; ++i) {
    int u, v, w;
    scanf("%d%d%d", &u, &v, &w);
    f[u][v] = f[v][u] = w;
  }
  int g1, g2, s1, s2;
  scanf("%d%d%d%d", &g1, &g2, &s1, &s2);
  for (int k = 1; k <= n; ++k) {
    for (int i = 1; i <= n; ++i)
      if (i != k) {
        for (int j = 1; j <= n; ++j)
          if (i != j && j != k) {
            f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
          }
      }
  }
  for (int i = 1; i <= n; ++i) {
    mx[i] = 0;
    mi[i] = 0x3f3f3f3f;
    for (int j = 1; j <= n; ++j)
      if (i != j) {
        mx[i] = max(mx[i], f[i][j]);
        mi[i] = min(mi[i], f[i][j]);
      }
  }
  long long ans = 0;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) {
      if (cmp(i, mi[i], j, mx[j]) == 0 || i == j) continue;
      int mn = 2, cur = 0;
      memset(dp, 0, sizeof(dp));
      dp[cur][1][0] = 1;
      for (int k = 1; k <= n; ++k)
        if (k != i && k != j) {
          mn++;
          cur ^= 1;
          int has[3] = {0};
          for (int t = 1; t <= n; ++t)
            if (k != t) {
              if (cmp(k, f[k][t], i, mi[i]))
                has[0] = 1;
              else if (cmp(j, mx[j], k, f[k][t]))
                has[2] = 1;
              else
                has[1] = 1;
            }
          memset(dp[cur], 0, sizeof(dp[cur]));
          for (int t1 = 1; t1 <= mn && t1 <= g2; ++t1) {
            for (int t2 = 0; t2 <= mn - t1 && t2 <= s2; ++t2) {
              dp[cur][t1][t2] += has[0] * dp[cur ^ 1][t1 - 1][t2] +
                                 has[1] * dp[cur ^ 1][t1][t2 - 1] +
                                 has[2] * dp[cur ^ 1][t1][t2];
            }
          }
        }
      for (int t1 = g1; t1 <= g2; ++t1) {
        for (int t2 = s1; t2 <= s2; ++t2) ans += dp[cur][t1][t2];
      }
    }
  }
  printf("%I64d\n", ans);
}
int main() {
  solve();
  return 0;
}
