背景

“Violet……我回来了……”

不知每日疲于在城市的水泥森林里奔波的你会不会有时也曾向往过乡村的生活。你会不

会幻想过,在夏日一个静谧的午后,你沉睡于乡间路边的树荫里,一片叶子落在了你的肩上,而你正做着一个悠长的梦,一个没有城市的梦。而我们的问题,正围绕着这个梦境而展开……

——Violet 6 故乡的梦

描述

循着这个故乡的梦,Freda和Rainbow一起去找Vani玩,不过去往Vani的故乡可不是一件容易的事……

从Freda和Rainbow所在的城市到Vani的故乡有n个站台,用1到n的正整数编号。你需要对每个站台访问一定次数以后才能到达Vani的故乡。站台之间有m个单向的传送门,通过传送门到达另一个站台不需要花费任何代价。而如果不通过传送门,你就需要乘坐小火车,并花费1单位的钱。值得庆幸的是,任意两个站台之间都有小火车直达。

现在给你每个站台必须访问的次数Fi,对于站台i,你必须恰好访问Fi次(不能超过)。

我们用u、v、w三个参数描述一个传送门,表示从站台u到站台v有一个最多可以使用w次的传送门(不一定要使用w次)。值得注意的是,对于任意一对传送门(u1,v1)和(u2,v2),如果有u1<u2,则有v1≤v2;如果有v1<v2,则有u1≤u2;且u1=u2和v1=v2不同时成立。

你可以从任意的站台开始,从任意的站台结束。出发去开始的站台需要花费1单位的钱。你需要求出前往Vani的故乡最少需要花费多少单位的钱。

输入格式

第一行包含两个正整数n、m,意义见题目描述。

第二行包含n个正整数,第i个数表示Fi。

接下来有m行,每行有三个正整数u、v、w,表示从u到v有一个可以使用w次的传送门。

输出格式

输出一行一个整数,表示前往Vani的故乡最少花费的钱数。

样例输入

4 3
5 5 5 5
1 2 1
3 2 1
3 4 1

样例输出

17

数据范围与约定

有20%的数据满足n≤10,m≤50;对于所有的w、Fi,满足1≤w,Fi≤10。

有50%的数据满足n≤1000,m≤10000。

100%的数据满足1≤n≤10000,1≤m≤100000;对于所有的u、v,满足1≤u,v≤n,u≠v;对于所有的w、Fi,满足1≤w,Fi≤50000。

以上的每类数据中都存在50%的数据满足对于所有的w、Fi,有w=Fi=1。