#include<iostream>
#include<cstdio>
#include<cmath>
#define er long long
using namespace std;
er n,p1,a,p2,b;
er adv(er a,er b,er &r,er &t){ er k,tmp;
if(b==0){r=1;t=0;return a;}
k=adv(b,a%b,r,t); tmp=r;r=t;t=tmp-a/b*t;
return k;
}
int main(){
cin>>n>>p1>>a>>p2>>b;
er x,y;
er gys=adv(a,b,x,y);
er t1=ceil(-1.0*n*x/b),t2=floor(1.0*n*y/a),t;//t1,t2分别为k的两个范围
if(n%gys!=0||t1>t2){puts("-1");return 0;}//无解的情况
//判断一次函数单调性
if(b*p1>a*p2)t=t1;
else t=t2;
er ans1=n*x/gys+b*t/gys,ans2=n*y/gys-a*t/gys;//ans1就是x的解,ans2就是y的解
cout<<ans1*p1+ans2*p2;
}