1 /**************************************************************
2 Problem: 2765
3 User: Tunix
4 Language: C++
5 Result: Accepted
6 Time:40 ms
7 Memory:1276 kb
8 ****************************************************************/
9
10 //BZOJ 2765
11 #include<cmath>
12 #include<cstdio>
13 #include<cstring>
14 #include<cstdlib>
15 #include<iostream>
16 #include<algorithm>
17 #include<iomanip>
18 #define rep(i,n) for(int i=0;i<n;++i)
19 #define F(i,j,n) for(int i=j;i<=n;++i)
20 #define D(i,j,n) for(int i=j;i>=n;--i)
21 using namespace std;
22
23 const int N=110;
24 /*******************template********************/
25 typedef long double lf;
26 #define eps 1e-12
27 int n,num;
28 lf a[N],b[N],c[N],d[N],S,anst,ansk;
29
30 void calc(lf k){
31 lf t=1e100;
32 F(i,1,n-1) t=min(t,k*c[i]+d[i]);
33 if (t>anst) anst=t,ansk=k;
34 }
35
36 int main(){
37 #ifndef ONLINE_JUDGE
38 freopen("2765.in","r",stdin);
39 // freopen("2765.out","w",stdout);
40 #endif
41 cin >>S>>n;
42 F(i,1,n) cin >> a[i] >> b[i];
43 F(i,1,n-1){
44 c[i]=1/a[i]-1/b[i]-1/a[n]+1/b[n];
45 d[i]=S/b[i]-S/b[n];
46 }
47
48 anst=-1e100;
49 F(i,1,n-1) F(j,i+1,n-1){
50 if (fabs(c[i]-c[j])<eps) continue;
51 lf k=(d[j]-d[i])/(c[i]-c[j]);
52 if (k<eps || k>S-eps) continue;
53 calc(k);
54 }
55 calc(0); calc(S);
56 anst*=3600;
57 if (anst<-eps) puts("NO");
58 else{
59 if (anst<eps) anst=0;
60 cout<<setprecision(2)<<fixed<<ansk<<' '<<S-ansk<<' ';
61 cout<<setprecision(0)<<fixed<<anst<<endl;
62 }
63 return 0;
64 }