#pragma GCC optimize("Ofast")
#pragma GCC optimization("unroll-loops")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("fast-math")
#pragma GCC optimize("no-stack-protector")

#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ld long double
#define ll long long
#define REP(i, a, b) for (ll i = a; i < b; i++)
#define REPI(i, a, b) for (ll i = b - 1; i >= a; i--)
#define i_os ios::sync_with_stdio(0);  cin.tie(0);  cout.tie(0);
#define INF (ll)1e18 + 100
#define endl "\n"
#define p0(a) cout << a << " "
#define p1(a) cout << a << endl
#define p2(a, b) cout << a << " " << b << endl
#define p3(a, b, c) cout << a << " " << b << " " << c << endl
#define p4(a, b, c, d) cout << a << " " << b << " " << c << " " << d << endl
// SOME BITMASK KNOWLEDGE
// 1)x & (x - 1):sets the last one bit of x to zero
// power of two exactly when x & (x − 1) = 0.
// 2)x & -x:sets all the one bits to zero, except last one bit
// 3)x | (x - 1):inverts all the bits after the last one bit
#define o_set tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>
#define o_setll tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update>
typedef tree<pair<ll, ll>,null_type,less<pair<ll, ll>>,rb_tree_tag,tree_order_statistics_node_update> indexed_set;
typedef tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> indexed_set1;
typedef tree<string,null_type,less<string>,rb_tree_tag,tree_order_statistics_node_update> indexed_set2;
//1. order_of_key(k) : number of elements strictly lesser than k
//2. find_by_order(k) : k-th element in the set
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);

ll power(ll a,ll n,ll c){
	if(n == 0) return 1 % c;
	ll s = power(a,n/2,c);
	s = (s * s) % c;
	if(n % 2) s = (s * a) % c;
	return s;
}

int main()
{
    i_os;
    ll n,x;
    cin>>n>>x;
    x *= 1000;
    ll curr = 0;
    ll ans = -1;
    REP(i,0,n){
    	ll a,b;
    	cin>>a>>b;
    	curr += (a*b)*10;
    	if(curr > x && ans == -1){
    		ans = i+1;
    	}
    }
    cout<<ans<<endl;
	return 0;
} 

/*
*   ────────────── •✵•✵• ──────────────
* |         In The Name of Allah         |
* |      Author: Amir Hossein Farhadi    |
* |        Created: 2021-04-28           |
*   ────────────── •✵•✵• ──────────────
*/
// ju't ujnf up spbs !
#include <algorithm>
#include <iostream>
#include <math.h>
#include <string>
#include <set>
#include <map>
#include <vector>
#include <iomanip>
#define fi first
#define se second
#define pb push_back
#define si(s) s.size()
#define MAXI 2147483647
#define all(a) a.begin(), a.end()
using namespace std;
typedef long long ll;
vector <int> a;
int h, w;
void get_input() {
    cin >> h >> w;
}
void solve() {
    for (int i = 0; i < h * w; i ++){
        int kom;
        cin >> kom;
        a.pb(kom);
    }
    int mini = *min_element(all(a));
    ll ans = 0;
    for (auto x : a){
        ans += x - mini;
    }
    cout << ans;
}
void output() {

}
int main () {
  ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int tc = 1;
  // cin >> tc;
  while (tc --) {
    get_input(), solve(), output();
  }
  return 0;
}
/* Thanks Allah */
