#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<queue>
#include<stack>
#include<cstdlib>
#include<iomanip>
#define rep(i,n) for(int j=1;j<=n;j++) cout<<a[j];
#define int long long
#define double long double
using namespace std;
int a[10007],b[10007];
int c;
int n;
bool j1(int x){
int ans=0;
for(int i=1;i<=n;i++){ans+=((a[i]*x)/b[i]+1);}
return ans>=c;
}
bool j2(int x){
int ans=0;
for(int i=1;i<=n;i++){ans+=((a[i]*x)/b[i]+1);}
return ans<=c;
}
int f1(int l,int r){
while(l<r){
int mid=(l+r)/2;
if(j1(mid))r=mid;
else l=mid+1;
}
return l;
}
int f2(int l,int r){
while(l<r){
int mid=(l+r+1)/2;
if(j2(mid))l=mid;
else r=mid-1;
}
return l;
}
int lim=(1<<30)-1;
signed main(){
cin>>n>>c;
for(int i=1;i<=n;i++)cin>>a[i]>>b[i];
int l=f1(0,lim);
int r=f2(0,lim);
int ansl=0,ansr=0;
for(int i=1;i<=n;i++){ansl+=((a[i]*l)/b[i]+1);}
for(int i=1;i<=n;i++){ansr+=((a[i]*r)/b[i]+1);}
if(ansl==c&&ansr==c)cout<<(r-l)+1;
else cout<<0;
}