#include<bits/stdc++.h>
#define endl "n"
using namespace std;
const int MAXN=1024,MAXM=10005;
int n,m;
int used[MAXM],mat[MAXN],f[MAXN][MAXN],reb[MAXN];
vector<pair<int,int> >ind;
struct place
{
int x,y,vol;
place() {}
place(int _x,int _y,int _vol)
{
x=_x;
y=_y;
vol=_vol;
}
};
vector<place>p;
vector<pair<double,pair<int,int> > >edges;
vector<int>graph[MAXN];
inline void speed ()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
inline double dist(pair<int,int> a,place b)
{
double ret=(a.first-b.x)*(a.first-b.x)+(a.second-b.y)*(a.second-b.y);
return sqrt(ret);
}
void read()
{
int xx,yy,cc;
cin>>n>>m;
for(int i=0; i<n; i++)
{
cin>>xx>>yy;
ind.push_back({xx,yy});
}
for(int j=0; j<m; j++)
{
cin>>xx>>yy>>cc;
p.push_back(place(xx,yy,cc));
}
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
double d=dist(ind[i],p[j]);
for(int s=0; s<p[j].vol; s++)
{
int a=i+1,b=(i+1)*n+(j+1)*m+s;
reb[b]=j;
f[a][b]=d;
f[b][a]=d;
edges.push_back({d,{a,b}});
}
}
}
sort(edges.begin(),edges.end());
}
int cnt;
int try_kuhn(int v)
{
if(used[v])return 0;
used[v]=1;
for(int i=0;i<graph[v].size();i++)
{
int to=graph[v][i];
if(mat[to]==0||try_kuhn(mat[to]))
{
cout<<to<<" "<<v<<" "<<f[to][v]<<" "<<reb[to]<<endl;
mat[to]=v;
mat[v]=to;
return 1;
}
}
return 0;
}
bool check()
{
cnt=0;
for(int i=1; i<=n; i++)
{
memset(used,0,sizeof(used));
try_kuhn(i);
// cout<<cnt<<endl;
}
for(int i=1;i<=n;i++)
{
if(mat[i]!=0)cnt++;
}
// cout<<cnt<<"doodle"<<endl;
cout<<endl;
return cnt>=n;
}
inline void add_edge(pair<int,int> e)
{
graph[e.first].push_back(e.second);
}
void solve()
{
double curr_ans=0,i=0;
do
{
memset(mat,0,sizeof(mat));
add_edge(edges[i].second);
curr_ans=edges[i].first;
i++;
}
while(check()==0&&i<edges.size());
cout<<curr_ans<<endl;
}
int main()
{
//speed();
read();
solve();
return 0;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}