1.
/**
 * ACM Training 
 * ACM Problem: 11659 Contest Problem: D - Informants 
 * Link: http://uva.onlinejudge.org/contests/235-f0e63531/11646.html 
 * @author Miesel Christoph  
 * @version 1.0 22.08.2009 
 * Status : Accepted 
 */

import java.util.*;

public class Informants
{
    static boolean[] list;
    
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        
        int i,a;
        int say, what, counter;
        
        while((i = sc.nextInt()) != 0)
        {
            a = sc.nextInt();
            counter = 0;
            
            list = new boolean[i+1];
            
            for(int c = 0; c <= i; c++)
                list[c] = true;
            
            for(int c = 0; c < a; c++)
            {
                say = sc.nextInt();
                what = sc.nextInt();
                if(what < 0)
                    list[(-1)*what] &= false;                
            }
            
            for(int c = 1; c <= i; c++)
            {
                counter = counter + (list[c] ? 1 : 0);
            }
            System.out.println(counter);
        }
    }
}

2.