import java.util.Scanner;

public class fran_dpbinsearch {

	static int n;
	static long M;
	static long[] a, b;
	
	public static void main(String[] args) {
		Scanner reader = new Scanner(System.in);
		n = reader.nextInt();
		M = reader.nextInt();
		a = new long[n];
		b = new long[n];
		for(int i = 0; i < n; i++) {
			a[i] = reader.nextInt();
			b[i] = reader.nextInt();
		}
		long lb = 0;
		long ub = (M + b[0]) / a[0] + 1;
		while(lb != ub) {
			long mid = (lb + ub) / 2;
			memo = new Long[n];
			if(maxMoney(0, mid) >= M) {
				ub = mid;
			} else {
				lb = mid + 1;
			}
		}
		System.out.println(lb);
		reader.close();
	}
	
	static Long[] memo;
	
	static long maxMoney(int i, long k) {
		if(i == n) return 0;
		if(memo[i] != null) return memo[i];
		
		// skip machine i
		long skip = maxMoney(i + 1, k);
		
		// buy machine i
		long take = k * a[i] - b[i] + maxMoney(i + 1, k);
		
		memo[i] = Math.max(skip, take);
		return memo[i];
	}
	
}
