#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <fstream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main() {
    ifstream inFile("DATA5.txt");
    ofstream outFile("OUT5.txt");
    
    for (int i = 0; i < 5; i++) {
        int ne;
        inFile >> ne;
        int edges[100][100];
        for (int j = 0; j < 100; j++) for (int k = 0; k < 100; k++) edges[j][k] = 0;
        int node[100] = {0};
        int color[100] = {0};
        int pcolor[100][4] = {0};
        for (int j = 0; j < 100; j++) for (int k = 0; k < 4; k++) pcolor[j][k] = 1;
        for (int j = 0; j < ne; j++) {
            int a, b;
            inFile >> a >> b;
            node[a-1] = 1;
            node[b-1] = 1;
            if (a == b) continue;
            edges[a-1][b-1] = 1;
            edges[b-1][a-1] = 1;
        }
        int used[4] = {0};
        bool done = false;
        int failed = 0;
        int next = -1;
        do {
            int c = -1;
            if (next == -1) {
                for (int j = 0; j < 100; j++) {
                    if (node[j]) {
                        c = j;
                        break;
                    }
                }
                if (c == -1) {
                    done = true;
                    break;
                }
            } else {
                c = next;
                next = -1;
            }
            int col = -1;
            for (int j = 0; j < 4; j++) {
                if (pcolor[c][j]) {
                    col = j;
                    //if (j + 1 > nc) nc = j + 1;
                    break;
                }
            }
            if (col == -1) {
                done = 1;
                failed = 1;
                break;
            }
            //cout << c << '=' << col << endl;
            color[c] = col;
            used[col] = 1;
            for (int j = 0; j < 100; j++) {
                if (!edges[c][j] || !node[j]) continue;
                pcolor[j][col] = 0;
                next = j;
            }
            node[c] = 0;
        } while (!done);
        if (failed)
        outFile << 0 << endl;
        else
        outFile << used[0] + used[1] + used[2] + used[3] << endl;
    }
    //system("pause");
    return 0;
}

