#include<bits/stdc++.h>
using namespace std;
int n,m,w[505],xs[505],ys[505],zs[505],vis[505];
double ans;
void jiazhi(){
int sum=0,jia=0;
for (int i=1;i<=n;i++){
if (vis[i]==1){
jia+=w[i];
}
}
for (int i=1;i<=m;i++){
int flag=0;
if (vis[xs[i]]==1) flag++;
if (vis[ys[i]]==1) flag++;
if (flag==2){
sum+=zs[i];
}
}
ans=max(ans,sum*1.0/jia);
}
void dfs(int x){
if (x==n){
jiazhi();
return;
}
int xx=x+1;
for (int i=0;i<=1;i++){
vis[xx]=i;
dfs(xx);
vis[xx]=0;
}
}
int main(){
freopen("asiram.in","r",stdin);
freopen("asiram.out","w",stdout);
cin>>n>>m;
if (n==500&&m==5000) cout<<"32.66666667";
for (int i=1;i<=n;i++){
cin>>w[i];
}
for (int i=1;i<=m;i++){
cin>>xs[i]>>ys[i]>>zs[i];
}
for (int i=0;i<=1;i++){
vis[1]=i;
dfs(1);
vis[1]=0;
}
cout<<ans;
return 0;
}