#include<bits/stdc++.h>
using namespace std;

#define INF (1<<30)

int main(){
	int D,G;	cin>>D>>G;
	vector<int> p(D+1), c(D+1);
	for(int i=1;i<=D;i++){
		cin>>p[i]>>c[i];
	}

	int ans=INF;
	for(int mask=0; mask<(1<<D); mask++){
		int score=0;
		int num=0;
		int needPos=0;

		for(int i=0;i<D;i++){
			if( mask>>i&1){
				score+=(100*(i+1)*p[i+1])+c[i+1];
				num+=p[i+1];
			}else{
				needPos=i+1;
			}
		}

		if(score<G){
			int s1=100*needPos;
			int needNum = ( (G-score)+s1-1 )/s1;
			// あと必要な点数(G-score)を、s1で割る(切り上げ) -> s1点の問題の必要個数

			if(needNum>=p[needPos]){
				continue;
			}

			num+=needNum;
		}

		ans=min(ans,num);
	}

	cout<<ans<<endl;

	return 0;
}
