#include <algorithm>
#include <iostream>
#include <vector>
#include <set>
using namespace std;
const int MAX = 2005;
vector<pair<int, int> > adj[MAX];
long long x[MAX], y[MAX], sum[MAX][MAX], dp[2][MAX][MAX];
int cnt[MAX][MAX], p[MAX];
vector<long long> vals;
set<pair<long long, int> > s;
void dij(int x, long long *d)
{
for (int i = 0; i < MAX; i++)
d[i] = 1e16;
d[x] = 0;
s.insert(make_pair(d[x], x));
while (!s.empty())
{
int v = s.begin()->second;
s.erase(s.begin());
for (int i = 0; i < adj[v].size(); i++)
{
int u = adj[v][i].first, w = adj[v][i].second;
if (d[u] > d[v] + w)
{
s.erase(make_pair(d[u], u));
d[u] = d[v] + w;
s.insert(make_pair(d[u], u));
}
}
}
}
int main()
{
ios::sync_with_stdio(false);
int n, m;
cin >> n >> m;
int s, t;
cin >> s >> t;
s--;
t--;
for (int i = 0; i < n; i++)
cin >> p[i];
for (int i = 0; i < m; i++)
{
int u, v, w;
cin >> u >> v >> w;
u--;
v--;
adj[u].push_back(make_pair(v, w));
adj[v].push_back(make_pair(u, w));
}
dij(s, x);
dij(t, y);
for (int i = 0; i < n; i++)
vals.push_back(x[i]);
sort(vals.begin(), vals.end());
vals.resize(unique(vals.begin(), vals.end()) - vals.begin());
for (int i = 0; i < n; i++)
x[i] = upper_bound(vals.begin(), vals.end(), x[i]) - vals.begin();
vals.clear();
for (int i = 0; i < n; i++)
vals.push_back(y[i]);
sort(vals.begin(), vals.end());
vals.resize(unique(vals.begin(), vals.end()) - vals.begin());
for (int i = 0; i < n; i++)
{
y[i] = upper_bound(vals.begin(), vals.end(), y[i]) - vals.begin();
sum[x[i]][y[i]] += p[i];
cnt[x[i]][y[i]]++;
}
n++;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
{
sum[i][j] += sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
cnt[i][j] += cnt[i - 1][j] + cnt[i][j - 1] - cnt[i - 1][j - 1];
}
for (int i = n - 1; i >= 0; i--)
for (int j = n - 1; j >= 0; j--)
{
if (cnt[i + 1][n] - cnt[i][n] - cnt[i + 1][j] + cnt[i][j] == 0)
dp[0][i][j] = dp[0][i + 1][j];
else
dp[0][i][j] = max(dp[0][i + 1][j], dp[1][i + 1][j]) + sum[i + 1][n] - sum[i][n] - sum[i + 1][j] + sum[i][j];
if (cnt[n][j + 1] - cnt[n][j] - cnt[i][j + 1] + cnt[i][j] == 0)
dp[1][i][j] = dp[1][i][j + 1];
else
dp[1][i][j] = min(dp[1][i][j + 1], dp[0][i][j + 1]) - sum[n][j + 1] + sum[n][j] + sum[i][j + 1] - sum[i][j];
}
if (dp[0][0][0] > 0)
cout << "Break a heart\n";
else if (dp[0][0][0] < 0)
cout << "Cry\n";
else
cout << "Flowers\n";
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTUFYID0gMjAwNTsKdmVjdG9yPHBhaXI8aW50LCBpbnQ+ID4gYWRqW01BWF07CmxvbmcgbG9uZyB4W01BWF0sIHlbTUFYXSwgc3VtW01BWF1bTUFYXSwgZHBbMl1bTUFYXVtNQVhdOwppbnQgY250W01BWF1bTUFYXSwgcFtNQVhdOwp2ZWN0b3I8bG9uZyBsb25nPiB2YWxzOwpzZXQ8cGFpcjxsb25nIGxvbmcsIGludD4gPiBzOwp2b2lkIGRpaihpbnQgeCwgbG9uZyBsb25nICpkKQp7Cglmb3IgKGludCBpID0gMDsgaSA8IE1BWDsgaSsrKQoJCWRbaV0gPSAxZTE2OwoJZFt4XSA9IDA7CglzLmluc2VydChtYWtlX3BhaXIoZFt4XSwgeCkpOwoJd2hpbGUgKCFzLmVtcHR5KCkpCgl7CgkJaW50IHYgPSBzLmJlZ2luKCktPnNlY29uZDsKCQlzLmVyYXNlKHMuYmVnaW4oKSk7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBhZGpbdl0uc2l6ZSgpOyBpKyspCgkJewoJCQlpbnQgdSA9IGFkalt2XVtpXS5maXJzdCwgdyA9IGFkalt2XVtpXS5zZWNvbmQ7CgkJCWlmIChkW3VdID4gZFt2XSArIHcpCgkJCXsKCQkJCXMuZXJhc2UobWFrZV9wYWlyKGRbdV0sIHUpKTsKCQkJCWRbdV0gPSBkW3ZdICsgdzsKCQkJCXMuaW5zZXJ0KG1ha2VfcGFpcihkW3VdLCB1KSk7CgkJCX0KCQl9Cgl9Cn0KaW50IG1haW4oKQp7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CglpbnQgbiwgbTsKCWNpbiA+PiBuID4+IG07CglpbnQgcywgdDsKCWNpbiA+PiBzID4+IHQ7CglzLS07Cgl0LS07Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQljaW4gPj4gcFtpXTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKQoJewoJCWludCB1LCB2LCB3OwoJCWNpbiA+PiB1ID4+IHYgPj4gdzsKCQl1LS07CgkJdi0tOwoJCWFkalt1XS5wdXNoX2JhY2sobWFrZV9wYWlyKHYsIHcpKTsKCQlhZGpbdl0ucHVzaF9iYWNrKG1ha2VfcGFpcih1LCB3KSk7Cgl9CglkaWoocywgeCk7CglkaWoodCwgeSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQl2YWxzLnB1c2hfYmFjayh4W2ldKTsKCXNvcnQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpKTsKCXZhbHMucmVzaXplKHVuaXF1ZSh2YWxzLmJlZ2luKCksIHZhbHMuZW5kKCkpIC0gdmFscy5iZWdpbigpKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCXhbaV0gPSB1cHBlcl9ib3VuZCh2YWxzLmJlZ2luKCksIHZhbHMuZW5kKCksIHhbaV0pIC0gdmFscy5iZWdpbigpOwoJdmFscy5jbGVhcigpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJdmFscy5wdXNoX2JhY2soeVtpXSk7Cglzb3J0KHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSk7Cgl2YWxzLnJlc2l6ZSh1bmlxdWUodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpKSAtIHZhbHMuYmVnaW4oKSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCXsKCQl5W2ldID0gdXBwZXJfYm91bmQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpLCB5W2ldKSAtIHZhbHMuYmVnaW4oKTsKCQlzdW1beFtpXV1beVtpXV0gKz0gcFtpXTsKCQljbnRbeFtpXV1beVtpXV0rKzsKCX0KCW4rKzsKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKCQlmb3IgKGludCBqID0gMTsgaiA8PSBuOyBqKyspCgkJewoJCQlzdW1baV1bal0gKz0gc3VtW2kgLSAxXVtqXSArIHN1bVtpXVtqIC0gMV0gLSBzdW1baSAtIDFdW2ogLSAxXTsKCQkJY250W2ldW2pdICs9IGNudFtpIC0gMV1bal0gKyBjbnRbaV1baiAtIDFdIC0gY250W2kgLSAxXVtqIC0gMV07CgkJfQoJZm9yIChpbnQgaSA9IG4gLSAxOyBpID49IDA7IGktLSkKCQlmb3IgKGludCBqID0gbiAtIDE7IGogPj0gMDsgai0tKQoJCXsKCQkJaWYgKGNudFtpICsgMV1bbl0gLSBjbnRbaV1bbl0gLSBjbnRbaSArIDFdW2pdICsgY250W2ldW2pdID09IDApCgkJCQlkcFswXVtpXVtqXSA9IGRwWzBdW2kgKyAxXVtqXTsKCQkJZWxzZQoJCQkJZHBbMF1baV1bal0gPSBtYXgoZHBbMF1baSArIDFdW2pdLCBkcFsxXVtpICsgMV1bal0pICsgc3VtW2kgKyAxXVtuXSAtIHN1bVtpXVtuXSAtIHN1bVtpICsgMV1bal0gKyBzdW1baV1bal07CgkJCWlmIChjbnRbbl1baiArIDFdIC0gY250W25dW2pdIC0gY250W2ldW2ogKyAxXSArIGNudFtpXVtqXSA9PSAwKQoJCQkJZHBbMV1baV1bal0gPSBkcFsxXVtpXVtqICsgMV07CgkJCWVsc2UKCQkJCWRwWzFdW2ldW2pdID0gbWluKGRwWzFdW2ldW2ogKyAxXSwgZHBbMF1baV1baiArIDFdKSAtIHN1bVtuXVtqICsgMV0gKyBzdW1bbl1bal0gKyBzdW1baV1baiArIDFdIC0gc3VtW2ldW2pdOwoJCX0KCWlmIChkcFswXVswXVswXSA+IDApCgkJY291dCA8PCAiQnJlYWsgYSBoZWFydFxuIjsKCWVsc2UgaWYgKGRwWzBdWzBdWzBdIDwgMCkKCQljb3V0IDw8ICJDcnlcbiI7CgllbHNlCgkJY291dCA8PCAiRmxvd2Vyc1xuIjsKCXJldHVybiAwOwp9Cg==