Problem:
一般化うるう年

通常，西暦 x 年がうるう年か否かは以下のように定義されている．

x が 400 の倍数であれば，うるう年である．

そうでないとき，x が 100 の倍数であれば，うるう年ではない．

そうでないとき，x が 4 の倍数であれば，うるう年である．

そうでないとき，うるう年ではない．

これは次のように一般化できる．ある数列 A1, ..., An について，西暦 x 年が "一般化うるう年" であるか否かを以下のように定義する．

x が Ai の倍数であるような最小の i (1 ≤ i ≤ n) について，i が奇数であれば一般化うるう年であり，偶数であれば一般化うるう年ではない．

そのような i が存在しないとき，n が奇数であれば一般化うるう年ではなく，偶数であれば一般化うるう年である．

例えば A = [400, 100, 4] のとき，この A に対する一般化うるう年は通常のうるう年と等価になる．

数列 A1, ..., An と正の整数 l, r が与えられるので．l ≤ x ≤ r なる正の整数 x のうち，西暦 x 年が A に対する一般化うるう年であるような x の個数を答えよ．

Input

入力は最大で 50 個のデータセットからなる．各データセットは次の形式で表される．

n l r
A1
A2
...
An

整数 n は 1 ≤ n ≤ 50 を満たす．整数 l,r は1 ≤ l ≤ r ≤ 4000 を満たす．各 i に対し整数 Ai は 1 ≤ Ai ≤ 4000 を満たす．

入力の終わりは 3 つのゼロからなる行で表される．

Output

各データセットについて，答えを 1 行で出力せよ．

Sample Input

3 1988 2014
400
100
4
1 1000 1999
1
2 1111 3333
2
2
6 2000 3000
5
7
11
9
3
13
0 0 0

Output for the Sample Input

7
1000
2223
785

Solution in Ruby (judge verdict: Accepted)

loop do
  n, l, r = gets.split.map(&:to_i)
  break if n == 0
  a = (1..n).map { gets.to_i }
  leap = 0
  (l..r).each do |x|
    i = a.index {|y| x % y == 0}
    if i
      leap += 1 if i.even?
    else
      leap += 1 if n.even?
    end
  end
  p leap
end