#include<bits/stdc++.h>
using namespace std;
const int maxn=2010;
int n,ans,h[maxn],a[maxn][maxn],f[maxn][maxn];
inline int read()
{
	int x=0;
	char c=getchar();
	while(!isdigit(c))
		c=getchar();
	while(isdigit(c))
	{
		x=(x<<3)+(x<<1)+c-48;
		c=getchar();
	}
	return x;
}
int main()
{
	n=read();
	for(register int i=1;i<=n;i++)
	{
		for(register int j=1;j<n;j++)
			a[i][j]=read();
		h[i]=1;
	}
	for(;;)
	{
		int flag=0;
		for(register int i=1;i<=n;i++)
			if(h[i]<n)
			{
				int x=a[i][h[i]];
				if(h[x]<n && a[x][h[x]]==i)
				{
					h[i]++;
					h[x]++;
					f[x][h[x]]=f[i][h[i]]=max(f[x][h[x]-1],f[i][h[i]-1])+1;
					flag=1;
				}
			}
		if(!flag)
			break;
	}
	for(register int i=1;i<=n;i++)
		if(h[i]<n)
		{
			puts("-1");
			return 0;
		}
	for(register int i=1;i<=n;i++)
		ans=max(ans,f[i][n]);
	printf("%d",ans);
	return 0;
}