Go: package main

import (
	"bufio"
	"os"
	"strconv"
	"strings"
	"fmt"
)

var scanner = bufio.NewScanner(os.Stdin)

func main() {
	for scanner.Scan() {
		L, _ := strconv.Atoi(scanner.Text())
		if L == 0 {
			break
		}
		for i := 0; i < 12; i++ {
			scanner.Scan()
			buf := strings.Split(scanner.Text(), " ")
			M, _ := strconv.Atoi(buf[0])
			N, _ := strconv.Atoi(buf[1])
			L -= (M-N)
			if L <= 0 {
				fmt.Println(i+1)
				continue
			}
		}
		fmt.Println("NA")
	}
}

C++: /* 2012-11-23T15:27:58 */
#define DEBUG_ON
#define CONDITION true
using namespace std;/*{{{*/

#include <algorithm>
#include <cassert>
#include <cctype>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <sys/time.h>
#include <vector>

#define INF (1e9)
static const double PI = acos(-1.0);
static const double EPS = 1e-10;

typedef long long int LL;
typedef unsigned long long int ULL;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<double> VD;
typedef vector<VD> VVD;
typedef vector<bool> VB;
typedef vector<VB> VVB;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef complex<double> P;

#define FOR(i, b, e) for (typeof(e) i = (b); i != (e); i < (e)? ++i : --i)
#define REP(i, n) FOR(i, 0, n)

#define IFC(c) if(c) continue;
#define IFB(c) if(c) break;
#define IFR(c, r) if(c) return r;

#define OPOVER(_op, _type) inline bool operator _op (const _type &t) const

#define arrsz(a) ( sizeof(a) / sizeof(a[0]) )

#define F first
#define S second
#define MP(a, b) make_pair(a, b)

#define SZ(a) ((LL)a.size())
#define PB(e) push_back(e)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())

#define ALL(a) (a).begin(), (a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define EACH(c,it) for(__typeof((c).begin()) it=(c).begin(); it!=(c).end(); ++it)
#define EXIST(s,e) ((s).find(e)!=(s).end())

#define BIT(n) (1ULL << (n))
#define BITOF(n, m) ((ULL)(n) >> (m) & 1)

#define RANGE(a, b, c) ((a) <= (b) && (b) <= (c))

#define PQ priority_queue
#define SC static_cast

#ifdef DEBUG_ON
#define dprt(fmt, ...) if (CONDITION) fprintf(stderr, fmt, __VA_ARGS__)
#define darr(a) if (CONDITION) copy( (a), (a) + arrsz(a), ostream_iterator<int>(cerr, " ") ); cerr << endl
#define darr_range(a, f, t) if (CONDITION) copy( (a) + (f), (a) + (t), ostream_iterator<int>(cerr, " ") ); cerr << endl
#define dvec(v) if (CONDITION) copy( ALL(v), ostream_iterator<int>(cerr, " ") ); cerr << endl
#define darr2(a, n, m) if (CONDITION) FOR(i, 0, (n)){ darr_range( (a)[i], 0, (m) ); }
#define dvec2(v) if (CONDITION) FOR(i, 0, SZ(v)){ dvec( (v)[i] ); }
#define WAIT() if (CONDITION) { string _wait_; cerr << "(hit return to continue)" << endl; getline(cin, _wait_); }
#define dump(x) if (CONDITION) cerr << " [L" << __LINE__ << "] " << #x << " = " << (x) << endl;
#define dumpf() if (CONDITION) cerr << __PRETTY_FUNCTION__ << endl;
#define dumpv(x) if (CONDITION) cerr << " [L:" << __LINE__ << "] " << #x << " = "; REP(q, (x).size()) cerr << (x)[q] << " "; cerr << endl;
#define where() if (CONDITION) cerr << __FILE__ << ": " << __PRETTY_FUNCTION__ << " [L: " << __LINE__ << "]" << endl;
#define show_bits(b, s) if(CONDITION) { REP(i, s) { cerr << BITOF(b, s-1-i); if(i%4 == 3) cerr << ' '; } cerr << endl; }
#else
#define cerr if(0) cerr
#define dprt(fmt, ...)
#define darr(a)
#define darr_range(a, f, t)
#define dvec(v)
#define darr2(a, n, m)
#define dvec2(v)
#define WAIT()
#define dump(x)
#define dumpf()
#define dumpv(x)
#define where()
#define show_bits(b, s)
#endif

inline int onbits_count(ULL b) { int c = 0; while(b != 0) { c += (b & 1); b >>= 1; } return c; }
inline int bits_count(ULL b) { int c = 0; while(b != 0) { ++c; b >>= 1; } return c; }
inline int toInt(string s) { int v; istringstream sin(s);sin>>v;return v; }
template<class T> inline string toString(T x) { ostringstream sout;sout<<x;return sout.str(); }
inline double now(){ struct timeval tv; gettimeofday(&tv, NULL); return (static_cast<double>(tv.tv_sec) + static_cast<double>(tv.tv_usec) * 1e-6); }
inline VS split(string s, char delimiter) { VS v; string t; REP(i, s.length()) { IFC(s[i] == ' '); if(s[i] == delimiter) v.PB(t), t = ""; else t += s[i]; } v.PB(t); return v; }

template<typename T1, typename T2> ostream& operator<<(ostream& s, const pair<T1, T2>& d) {return s << "(" << d.first << ", " << d.second << ")";}
/*}}}*/

int main() {
	std::ios_base::sync_with_stdio(false);
	int L, M, N;
	while (cin >> L, L) {
		bool ok = false;
		int ans = 0;
		REP (i, 12) {
			cin >> M >> N;
			L -= M - N;
			if (!ok && L <= 0) {
				ans = i+1;
				ok = true;
			}
		}
		if (ok) {
			cout << ans << endl;
		}
		else {
			cout << "NA" << endl;
		}
	}
}

C++: #include <iostream>
using namespace std;
int main(){
	int l;
	while(cin>>l,l){
		int ans=0;
		for(int i=0,m,n;i<12;++i){
			cin>>m>>n;
			l-=m-n;
			if(ans==0&&l<=0){
				ans=i+1;
			}
		}
		if(ans==0) cout<<"NA\n";
		else cout<<ans<<"\n";
	}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
    long int trip,sui,tou,total,flag;
    while(1){
        total = 0;
        flag = 0;
        cin >> trip;
        if(trip == 0){
            break;
        }
        for(int i=0;i<12;i++){
            cin >> sui >> tou;
            total += sui - tou;
            if(total >= trip && flag == 0){
                cout << i+1 << endl;
                flag = 1;
            }
        }
        if(flag == 0){
            cout << "NA" << endl;
        }
    }
}

C++: #include<stdio.h>
int main(void)
{
	int w,n,z,x,i,k,c;
	while(1){
	c=0;
	k=0;
		scanf("%d",&n);
		 if(n==0) break;
	for(i=0;i<12;i++){
			scanf("%d %d",&z,&x);
			k+=z-x;
		if(k>n){
			c++;
		}
	}
	if(c==0){
	printf("NA\n");
	}
	else{
	w=c-1;
	printf("%d\n",w);
	}
  }	
	return	0;
}

C++: #include<iostream>
using namespace std;
int main()
{
	long L, M, N, sum, i, k;
	while(1)
	{	
		cin >> L;
		if ( L == 0 )break;
		else
		{
			k = 1;
			sum = 0;
			for ( i = 0; i < 12; i++ )
			{
				cin >> M >> N;
				sum = (sum + (M - N));
				if ( sum <= L )k++;
			}
			if ( sum < L )cout << "NA" << endl;
			else cout << k << endl;
		}
	}	
	return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;

int main()
{   
    int TripCost;
    while (cin >> TripCost) {
        if (TripCost == 0) break;
        
        int TripSum = 0;
        pair<bool, int> DataBase(false, 0);
         
        
        for (int i = 0; i < 12; ++i) {
            int data1, data2;

            cin >> data1 >> data2;
            
            TripSum += data1 - data2;
            
            if (TripSum >= TripCost) {
                DataBase.first = true;
                DataBase.second = i + 1;
            } 
        }
        
        if (DataBase.first) {
            cout << DataBase.second << endl;
        } else {
            cout << "NA" << endl;}
    }
    
    return 0;
}

C++: #include<stdio.h>

int main(){
	int l,m,n,i,j;
	while(0<=scanf("%d",&l)){
		if(l==0) break;
		j=-1;
		for(i=0;i<12;i++){
			scanf("%d%d",&m,&n);
			l-=(m-n);
			if(j==-1 && l<=0) j=i;
		}
		
		if(j!=0){
			printf("%d\n",j+1);
			continue;
		}
		
		printf("NA\n");
	}
	return 0;
}

C++: #include<stdio.h>

int main(){
	int l,m,n,i,j;
	while(0<=scanf("%d",&l)){
		if(l==0) break;
		j=-1;
		for(i=0;i<12;i++){
			scanf("%d%d",&m,&n);
			l-=(m-n);
			if(j==-1 && l<=0) j=i;
		}
		
		if(j!=-1){
			printf("%d\n",j+1);
			continue;
		}
		
		printf("NA\n");
	}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
	int l, m[14], n[14], ans;
	while(cin>>l, l){
		for(int i=1; i<=12; i++)cin>>m[i]>>n[i];
		for(ans=1; ans<=13; ans++){			
			if(m[ans]-n[ans]>0)l-=m[ans]-n[ans];
			if(l<=0)break;
		}
		ans!=13 ? cout<<ans<<endl : cout<<"NA\n";
	}
	return 0;
}