#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> ii;
#define fi first
#define se second
struct ele
{
ll u, w, k;
bool operator > (const ele &other) const
{
return w > other.w;
}
};
const ll inf = 1e18;
const int mx = 1e5 + 7;
int n, m, c[mx];
vector<ii> adj[mx];
ll nd[mx], d[mx][2];
void init()
{
for (int i = 1; i <= n; i++) {
nd[i] = d[i][0] = d[i][1] = inf;
}
}
void dijkstra2()
{
nd[n] = 0;
priority_queue<ii, vector<ii>, greater<ii>> q;
q.push({0, n});
while(!q.empty()) {
auto [kc, u] = q.top(); q.pop();
if (kc > nd[u]) continue;
for (auto [v, w] : adj[u]) {
if (nd[u] + w < nd[v]) {
nd[v] = nd[u] + w;
q.push({nd[v], v});
}
}
}
}
void dijkstra1()
{
d[1][0] = 0;
d[1][1] = nd[1];
priority_queue<ele, vector<ele>, greater<ele>> q;
q.push({1, 0, 0});
q.push({1, nd[1], 1});
while(!q.empty()) {
auto [u, kc, k] = q.top(); q.pop();
if (kc > d[u][k]) continue;
for (auto [v, w] : adj[u]) {
if (d[u][k] + w < d[v][k]) {
d[v][k] = d[u][k] + w;
q.push({v, d[v][k], k});
}
if (k == 0 && d[u][k] + w + nd[v] < d[v][1]) {
d[v][1] = d[u][k] + w + nd[v];
q.push({v, d[v][1], 1});
}
}
}
}
int main()
{
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> c[i];
}
for (int i = 1; i <= m; i++) {
int u, v, w;
cin >> u >> v >> w;
adj[u].push_back({v, w});
adj[v].push_back({u, w});
}
init();
dijkstra2();
dijkstra1();
ll ans = inf;
for (int i = 1; i <= n; i++) {
ans = min({ans, d[i][1] + c[i], d[i][0] + c[i] + nd[i]});
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxsbCwgbGw+IGlpOwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCgpzdHJ1Y3QgZWxlCnsKICAgIGxsIHUsIHcsIGs7CiAgICBib29sIG9wZXJhdG9yID4gKGNvbnN0IGVsZSAmb3RoZXIpIGNvbnN0CiAgICB7CiAgICAgICAgcmV0dXJuIHcgPiBvdGhlci53OwogICAgfQp9OwoKY29uc3QgbGwgaW5mID0gMWUxODsKY29uc3QgaW50IG14ID0gMWU1ICsgNzsKaW50IG4sIG0sIGNbbXhdOwp2ZWN0b3I8aWk+IGFkaltteF07CmxsIG5kW214XSwgZFtteF1bMl07Cgp2b2lkIGluaXQoKQp7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBuZFtpXSA9IGRbaV1bMF0gPSBkW2ldWzFdID0gaW5mOwogICAgfQp9Cgp2b2lkIGRpamtzdHJhMigpCnsKICAgIG5kW25dID0gMDsKICAgIHByaW9yaXR5X3F1ZXVlPGlpLCB2ZWN0b3I8aWk+LCBncmVhdGVyPGlpPj4gcTsKICAgIHEucHVzaCh7MCwgbn0pOwogICAgd2hpbGUoIXEuZW1wdHkoKSkgewogICAgICAgIGF1dG8gW2tjLCB1XSA9IHEudG9wKCk7IHEucG9wKCk7CiAgICAgICAgaWYgKGtjID4gbmRbdV0pIGNvbnRpbnVlOwogICAgICAgIGZvciAoYXV0byBbdiwgd10gOiBhZGpbdV0pIHsKICAgICAgICAgICAgaWYgKG5kW3VdICsgdyA8IG5kW3ZdKSB7CiAgICAgICAgICAgICAgICBuZFt2XSA9IG5kW3VdICsgdzsKICAgICAgICAgICAgICAgIHEucHVzaCh7bmRbdl0sIHZ9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKdm9pZCBkaWprc3RyYTEoKQp7CiAgICBkWzFdWzBdID0gMDsKICAgIGRbMV1bMV0gPSBuZFsxXTsKICAgIHByaW9yaXR5X3F1ZXVlPGVsZSwgdmVjdG9yPGVsZT4sIGdyZWF0ZXI8ZWxlPj4gcTsKICAgIHEucHVzaCh7MSwgMCwgMH0pOwogICAgcS5wdXNoKHsxLCBuZFsxXSwgMX0pOwogICAgd2hpbGUoIXEuZW1wdHkoKSkgewogICAgICAgIGF1dG8gW3UsIGtjLCBrXSA9IHEudG9wKCk7IHEucG9wKCk7CiAgICAgICAgaWYgKGtjID4gZFt1XVtrXSkgY29udGludWU7CiAgICAgICAgZm9yIChhdXRvIFt2LCB3XSA6IGFkalt1XSkgewogICAgICAgICAgICBpZiAoZFt1XVtrXSArIHcgPCBkW3ZdW2tdKSB7CiAgICAgICAgICAgICAgICBkW3ZdW2tdID0gZFt1XVtrXSArIHc7CiAgICAgICAgICAgICAgICBxLnB1c2goe3YsIGRbdl1ba10sIGt9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoayA9PSAwICYmIGRbdV1ba10gKyB3ICsgbmRbdl0gPCBkW3ZdWzFdKSB7CiAgICAgICAgICAgICAgICBkW3ZdWzFdID0gZFt1XVtrXSArIHcgKyBuZFt2XTsKICAgICAgICAgICAgICAgIHEucHVzaCh7diwgZFt2XVsxXSwgMX0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgCiAgICBjaW4gPj4gbiA+PiBtOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGNbaV07CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBpbnQgdSwgdiwgdzsKICAgICAgICBjaW4gPj4gdSA+PiB2ID4+IHc7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh7diwgd30pOwogICAgICAgIGFkalt2XS5wdXNoX2JhY2soe3UsIHd9KTsKICAgIH0KICAgIGluaXQoKTsKICAgIGRpamtzdHJhMigpOwogICAgZGlqa3N0cmExKCk7CiAgICBsbCBhbnMgPSBpbmY7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBhbnMgPSBtaW4oe2FucywgZFtpXVsxXSArIGNbaV0sIGRbaV1bMF0gKyBjW2ldICsgbmRbaV19KTsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9