/*
TASK:tri
LANG:C++
*/
#include<iostream>
using namespace std;
int a[1000][1000],n,br=0;
void go(int x,int nowx,int nowy,int move)
{
     if(move>3 || (move==3 && nowy!=x)) return;
     if(move==3 && nowy==x) {br++;return;}
     for(int i=1;i<=n;i++)
     if(a[nowy][i]) {
     a[nowy][i]=0;
     a[i][nowy]=0;
     go(x,nowy,i,move+1);
     a[nowy][i]=1;
     a[i][nowy]=1;
     }
}
int main()
{
    int q,w;
    cin>>n;
    while(cin>>q && cin>>w)
    {
                 a[q][w]=1;
                 a[w][q]=1;
    }
    for(int i=1;i<=n;i++)
    for(int j=i+1;j<=n;j++)
    if(a[i][j]) {a[i][j]=0;a[j][i]=0;go(i,i,j,1);a[i][j]=1;a[j][i]=1;}
    cout<<br/3<<endl;
    //system("pause");
    return 0;
}
/*
7
3 4
4 5
3 1
7 1
2 3
6 7
7 2
7 5
5 6
4 7
0 0
*/
