#include<map>
#include<set>
#include<cmath>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 0x3f3f3f3f
using namespace std;

int dp[42][410][410];
int a[42],b[42],c[42];
int n,ma,mb;

int main()
{
	//give the fucking vjudge a flying flying fucking ♂ 
	scanf("%d%d%d",&n,&ma,&mb);
	memset(dp,0x3f,sizeof(dp));
	for(int i=0; i<n; i++)
	{
		scanf("%d%d%d",&a[i],&b[i],&c[i]);
	}
	dp[0][0][0]=0;
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<=400; j++)
		{
			for(int k=0; k<=400; k++)
			{
				if(dp[i][j][k]==inf)
				{
					continue;
				}
				dp[i+1][j][k]=min(dp[i][j][k],dp[i+1][j][k]);
				dp[i+1][j+a[i]][k+b[i]]=min(dp[i+1][j+a[i]][k+b[i]],dp[i][j][k]+c[i]);
			}
		}
	}
	int ans=inf;
	for(int i=1;i<=400;i++)
	{
		for(int j=1;j<=400;j++)
		{
			if(i*ma==j*mb)
			{
				ans=min(ans,dp[n][j][i]);
			}
		}
	}
	printf("%d\n",ans>=inf?-1:ans);
}