В каких строчках кода содержатся ошибки?

namespace foo { 
  class A 
  { 
  }; 
 
  void f(A a) {} 
} 
 
int main() 
{ 
    A b;         //1 
    foo::A a;    //2 
    foo::f(a);   //3 
    f(a);        //4 
 
    return 0; 
}
1
2
3
4