Problem:
旅行はいつ?

あなたは友人と旅行に行きたいと考えています。ところが、浪費癖のある友人はなかなか旅行費用を貯めることができません。友人が今の生活を続けていると、旅行に行くのはいつになってしまうか分かりません。そこで、早く旅行に行きたいあなたは、友人が計画的に貯蓄することを助けるプログラムを作成することにしました。

友人のある月のお小遣いを M 円、その月に使うお金を N 円とすると、その月は (M - N) 円貯蓄されます。毎月の収支情報 M 、 N を入力とし、貯蓄額が旅行費用 L に達するのにかかる月数を出力するプログラムを作成してください。ただし、12 ヶ月を過ぎても貯蓄額が旅行費用に達しなかった場合はNA と出力してください。

Input

複数のデータセットの並びが入力として与えられます。 入力の終わりはゼロひとつの行で示されます。
各データセットは以下の形式で与えられます。

L
M1 N1
M2 N2
:
M12 N12

1 行目に旅行費用 L (1 ≤ L ≤ 1000000, 整数) が与えられます。続く 12 行に、i 月目の収支情報 Mi, Ni (0 ≤ Mi, Ni ≤ 100000, Ni ≤ Mi, 整数) が与えられます。

データセットの数は 1000 を超えません。

Output

入力データセットごとに、貯蓄額が旅行費用に達するのにかかる月数を１行に出力します。

Sample Input

10000
5000 3150
5000 5000
0 0
5000 1050
5000 3980
5000 210
5000 5000
5000 5000
0 0
5000 2100
5000 2100
5000 2100
29170
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 70831
0

Output for the Sample Input

6
NA

Solution in C# (judge verdict: Accepted)

using System;

public class p0206
{
	p0206(){
		string str;
		string[] st;
		long n, sm;
		bool f;
		long[] a = new long[12];
		
		while((str=Console.ReadLine())!=null && str != "0"){
			n = long.Parse(str);
			sm = 0;
			f = true;
			
			for(int i = 0; i < 12; ++i){
				st = (Console.ReadLine()).Split(' ');
				a[i] = long.Parse(st[0]) - long.Parse(st[1]);
			}
			
			for(int i = 0; i < 12; ++i){
				sm += a[i];
				if(sm >= n){
					Console.WriteLine("{0}", i+1);
					f = false;
					break;
				}
			}
			if(f) Console.WriteLine("NA");
		}
	}
	
	public static int Main(string[] args){
		new p0206();
		return 0;
	}
}