/* 题意中文的,很好理解,基础的01背包问题。不过有个地方我很诧异,题目竟然有不花钱获得录取概率的,哎,又一次先入为主了,果断丢了这种情况,wa了一次! */
#include < iostream >
#include < cstring >
#define N 100005
using namespace std;
double dp[N];
struct node
{
int v;
double p;
}a[N];
int main ()
{
//freopen("ts.txt","r",stdin);
double y,r;
int i,j,n,m,x,t;
while(~scanf("%d%d",&n,&m),n||m)
{
for(i=0;i<=n;i++)dp[i]=1;
for(i=0;i<m;i++)
{
scanf("%d%lf",&x,&y);
a[i].v=x ; a[i].p=1-y;
}
for(t=n,i=0;i<m;i++)
{
for(j=t;j>=a[i].v;j--)
if(dp[j]>dp[j-a[i].v]*a[i].p)
dp[j]=dp[j-a[i].v]*a[i].p;
}
for(r=1,i=0;i<=t;i++) r=r<dp[i]?r:dp[i];
printf("%.1lf%%\n",(1-r)*100.0);
}
return 0;
}
/*递推公式 dp[i][j]=max{d[i-1][j],dp[i][j-m]*p};m代表钱,p代表概率 */