#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define pll pair<LL,LL>
#define x first
#define y second
#define pi acos(-1)
#define sqr(x) ((x)*(x))
#define pdd pair<double,double>
#define MEMS(x) memset(x,-1,sizeof(x))
#define MEM(x) memset(x,0,sizeof(x))
#define less Less
#define EPS 1e-4
#define arg ARG
#define pdd pair<double,double>
#define cpdd const pdd
#define MXN 300005
int f[200005];
int Find(int x){
    if(f[x]==x)return x;
    return f[x]=Find(f[x]);
}
int match[200005];
int main(){
    int n,h,w;
    scanf("%d %d %d",&n,&h,&w);
    for(int i = 1;i<=h+w;i++)
        f[i]=i;
    pair<int,pii> p[100005];
    for(int i = 0;i<n;i++){
        int r,c,a;
        scanf("%d %d %d",&r,&c,&a);
        p[i]=mp(a,mp(r,c+h));
    }
    sort(p,p+n);
    reverse(p,p+n);
    LL ans=0;
    for(int i = 0;i<n;i++){
        int a=Find(p[i].y.x);
        int b=Find(p[i].y.y);
        if(!match[a]){
            match[a]=1;
            f[a]=b;
            ans+=p[i].x;
        }
        else if(!match[b]){
            match[b]=1;
            f[b]=a;
            ans+=p[i].x;
        }
    }
    printf("%lld\n",ans);
}