Problem:
うるう年

西暦 a 年から b 年までの間にあるすべてのうるう年を出力するプログラムを作成してください。

うるう年の条件は、次のとおりとします。ただし、0 < a ≤ b < 3,000 とします。与えられた期間にうるう年がない場合には "NA"と出力してください。

西暦年が 4 で割り切れる年であること。

ただし、100 で割り切れる年はうるう年としない。

しかし、400 で割り切れる年はうるう年である。

Input

複数のデータセットが与えられます。各データセットの形式は以下のとおりです：

a b

a, b がともに 0 のとき入力の終了とします。データセットの数は 50 を超えません。

Output

データセットごとに、西暦または NA を出力してください。

データセットの間に１つの空行を入れてください。

Sample Input

2001 2010
2005 2005
2001 2010
0 0

Output for the Sample Input

2004
2008

NA

2004
2008

Solution in Ruby (judge verdict: Accepted)

STDOUT.sync = true

def leap_year_judge(year)
  case
  when (year % 400).zero?
    true
  when (year % 100).zero?
    false
  when (year % 4).zero?
    true
  else
    false 
  end
end

count = 0

while line = gets do
  a,b = line.split.map(&:to_i)
  leap_count = 0
  break if a == 0 && b == 0
  puts "" unless count == 0
  count += 1

  (a..b).each do |current_year|
    if leap_year_judge(current_year)
      puts current_year
      leap_count += 1
    end
  end
  puts "NA" if leap_count == 0
end