// Aizu 2217: Let's JUMPSTYLE
// 2017.9.23 bal4u@uu

#include <stdio.h>

int jump[100][100][2];  // [0]:?????£????????????r, [1]:?????£????????????c
int mark[100][100];

int main()
{
	int n, r, c, r0, c0, r1, c1;   // x, y??§????????????r,c???????????????y,x????????±???
	int new, ans;		// new: ??°???????????????, ans: ???????????????

	while (scanf("%d", &n) && n > 0) {
		for (r = 0; r < n; r++) for (c = 0; c < n; c++) {
			scanf("%d%d", &c1, &r1);
			jump[r][c][0] = r1, jump[r][c][1] = c1;
			mark[r][c] = 0;		// ?????????????????¨???????????????
		}
		ans = new = 0;
		for (r = 0; r < n; r++) for (c = 0; c < n; c++) {
			if (!mark[r][c]) {		// ??????????????????????????????
				new++;				// ??°?????????????????¨??????????????????
				mark[r][c] = new;	// ?????????
				for (r0 = r, c0 = c; ; r0 = r1, c0 = c1) {
					r1 = jump[r0][c0][0], c1 = jump[r0][c0][1];
					if (mark[r1][c1] > 0) {			// ???????????????????????\??£???
						if (mark[r1][c1] == new)	// ??°??????????????????????????????
							ans++;
						break;						// ?????????????????????????????????????????????
					}
					mark[r1][c1] = new;
				}
			}
		}
		printf("%d\n", ans);	// ????????????????????????????????????????????§????¨???????o(n^2)
	}
	return 0;
}