#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T &x) {
  T f = 1;
  x = 0;
  char s = getchar();
  while (s < '0' || s > '9') {
    if (s == '-') f = -1;
    s = getchar();
  }
  while (s >= '0' && s <= '9') {
    x = x * 10 + s - '0';
    s = getchar();
  }
  x *= f;
}
const int M = 5e3 + 5;
const int N = 51;
struct Edge {
  int u, v, f, w;
} e[M << 1];
int head[N], ecnt = 1;
inline void adde(int u, int v, int w, int f) {
  e[++ecnt].v = v;
  e[ecnt].w = w;
  e[ecnt].f = f;
  e[ecnt].u = head[u];
  head[u] = ecnt;
}
inline void add(int u, int v, int w, int f) {
  adde(u, v, w, f);
  adde(v, u, 0, -f);
}
int n, m, s, t, a, b, c, d;
int dis[N], vis[N], flow[N], pre[N], lst[N];
double ans;
queue<int> q;
inline int spfa() {
  memset(dis, 0x3f, sizeof(dis));
  memset(vis, 0, sizeof(vis));
  memset(flow, 0x3f, sizeof(flow));
  memset(pre, 0, sizeof(pre));
  memset(lst, 0, sizeof(lst));
  q.push(s);
  vis[s] = 1;
  dis[s] = 0;
  while (!q.empty()) {
    int u = q.front();
    q.pop();
    vis[u] = 0;
    for (int i = head[u], v; i && (v = e[i].v); i = e[i].u) {
      if (!e[i].w) continue;
      if (dis[v] <= (dis[u] + e[i].f)) continue;
      dis[v] = dis[u] + e[i].f;
      flow[v] = std::min(flow[u], e[i].w);
      lst[v] = i;
      pre[v] = u;
      if (!vis[v]) vis[v] = 1, q.push(v);
    }
  }
  return lst[t] != 0;
}
vector<pair<int, int> > vec;
int fl, co;
inline void mcmf() {
  fl = 0;
  co = 0;
  while (spfa()) {
    fl += flow[t];
    co += flow[t] * dis[t];
    vec.push_back(make_pair(co, fl));
    int now = t;
    while (now != s) {
      e[lst[now]].w -= flow[t];
      e[lst[now] ^ 1].w += flow[t];
      now = pre[now];
    }
  }
}
int Q, x;
inline void solve() {
  read(n);
  read(m);
  s = 1;
  t = n;
  for (int i = (1); i <= (m); i++) {
    read(a);
    read(b);
    read(c);
    add(a, b, 1, c);
  }
  mcmf();
  read(Q);
  while (Q--) {
    read(x);
    ans = (1e18);
    for (pair<int, int> ys : vec)
      ans = min(ans, (1.0 * (ys.first + x)) / (1.0 * ys.second));
    printf("%.7lf\n", ans);
  }
}
int main() { solve(); }
