Problem:
Score : 300 points

Problem Statement

A programming competition site AtCode provides algorithmic problems.
Each problem is allocated a score based on its difficulty.
Currently, for each integer i between 1 and D (inclusive), there are p_i problems with a score of 100i points.
These p_1 + … + p_D problems are all of the problems available on AtCode.

A user of AtCode has a value called total score.
The total score of a user is the sum of the following two elements:

Base score: the sum of the scores of all problems solved by the user.

Perfect bonuses: when a user solves all problems with a score of 100i points, he/she earns the perfect bonus of c_i points, aside from the base score (1 ≤ i ≤ D).

Takahashi, who is the new user of AtCode, has not solved any problem.
His objective is to have a total score of G or more points.
At least how many problems does he need to solve for this objective?

Constraints

1 ≤ D ≤ 10

1 ≤ p_i ≤ 100

100 ≤ c_i ≤ 10^6

100 ≤ G

All values in input are integers.

c_i and G are all multiples of 100.

It is possible to have a total score of G or more points.

Input

Input is given from Standard Input in the following format:

D G
p_1 c_1
:
p_D c_D

Output

Print the minimum number of problems that needs to be solved in order to have a total score of G or more points. Note that this objective is always achievable (see Constraints).

Sample Input 1

2 700
3 500
5 800

Sample Output 1

3

In this case, there are three problems each with 100 points and five problems each with 200 points. The perfect bonus for solving all the 100-point problems is 500 points, and the perfect bonus for solving all the 200-point problems is 800 points. Takahashi's objective is to have a total score of 700 points or more.

One way to achieve this objective is to solve four 200-point problems and earn a base score of 800 points. However, if we solve three 100-point problems, we can earn the perfect bonus of 500 points in addition to the base score of 300 points, for a total score of 800 points, and we can achieve the objective with fewer problems.

Sample Input 2

2 2000
3 500
5 800

Sample Output 2

7

This case is similar to Sample Input 1, but the Takahashi's objective this time is 2000 points or more. In this case, we inevitably need to solve all five 200-point problems, and by solving two 100-point problems additionally we have the total score of 2000 points.

Sample Input 3

2 400
3 500
5 800

Sample Output 3

2

This case is again similar to Sample Input 1, but the Takahashi's objective this time is 400 points or more. In this case, we only need to solve two 200-point problems to achieve the objective.

Sample Input 4

5 25000
20 1000
40 1000
50 1000
30 1000
1 1000

Sample Output 4

66

There is only one 500-point problem, but the perfect bonus can be earned even in such a case.

Solution in Ruby (2.3.3) (judge verdict: Time Limit Exceeded)

d_g = gets.chomp.split(" ")
d = d_g[0].to_i
g = d_g[1].to_i
p_s = Array.new(10, 0)
c_s = Array.new(10, 0)
for i in 0..d-1
	p_c = gets.chomp.split(" ")
	p_s[i] = p_c[0].to_i
	c_s[i] = p_c[1].to_i
end
min = 0
for i in 0..p_s.length-1
	min += p_s[i]
end

i = Array.new()		#レベル何問目を何回解いたか
for i0 in 0..p_s[0]
	break	if min < i0
	i[0] = i0
	for i1 in 0..p_s[1]
		break	if min < i0+i1
		i[1] = i1
		for i2 in 0..p_s[2]
			break	if min < i0+i1+i2
			i[2] = i2
			for i3 in 0..p_s[3]
				break	if min < i0+i1+i2+i3
				i[3] = i3
				for i4 in 0..p_s[4]
					break	if min < i0+i1+i2+i3+i4
					i[4] = i4
					for i5 in 0..p_s[5]
						break	if min < i0+i1+i2+i3+i4+i5
						i[5] = i5
						for i6 in 0..p_s[6]
							break	if min < i0+i1+i2+i3+i4+i5+i6
							i[6] = i6
							for i7 in 0..p_s[7]
								break	if min < i0+i1+i2+i3+i4+i5+i6+i7
								i[7] = i7
								for i8 in 0..p_s[8]
									break	if min < i0+i1+i2+i3+i4+i5+i6+i7+i8
									i[8] = i8
									for i9 in 0..p_s[9]
										break	if min < i0+i1+i2+i3+i4+i5+i6+i7+i8
										i[9] = i9
										point = 0
										for j in 0..9
											point += (100*(j+1)*i[j])
											if i[j] == p_s[j]
												point += c_s[j]
											end
										end
										if point >= g
											min = i0+i1+i2+i3+i4+i5+i6+i7+i8+i9
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end
end

puts min.to_s