template <class T, int N, int P>
class Math2{
public :
static T pascal(){
return Math2<T, N-1, P-1>::pascal()+Math2<T, N, P-1>::pascal();
}
};
template <class T, int N>
class Math2<T, N, 0>{
public :
static T pascal(){
return 0;
}
};
template <class T, int N>
class Math2<T, 0, N>{
public :
static T pascal(){
return 0;
}
};
template <class T>
class Math2<T, 1, 1>{
public :
static T pascal(){
return 1;
}
};