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 JAVA (judge verdict: Wrong Answer)

import java.io.*;
import java.util.*;
public class Main {
	
	public static boolean isLeap(int year) {
		
		if (year % 400 == 0) {
			return true;
		} else if (year % 100 == 0) {
			return false;
		} else 
			return year % 4 == 0;
		
	}
	
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = 
			new BufferedReader(new InputStreamReader(System.in));
		ArrayList<String> ans = new ArrayList<String>();
		
		while (true) {
			
			boolean nan_flag = true;
			StringTokenizer st = new StringTokenizer(br.readLine()," ");
			int a = Integer.parseInt(st.nextToken());
			int b = Integer.parseInt(st.nextToken());
			if (a == 0 && b == 0) break;
			for (; a <= b; a++) {
				if (isLeap(a)) {
					ans.add(String.valueOf(a));
					nan_flag = false;
				}
			}
			if (nan_flag) ans.add("NAN");
			ans.add("");
			
		}
		
		for (int i = 0; i < ans.size() - 1; i++) {
			if (ans.get(i).equals("")) {
				System.out.println();
				System.out.println();
				continue;
			}
			System.out.println(ans.get(i));
		}
	}

}