#include <bits/stdc++.h>
using namespace std;
#define MAXN 200001
#define int long long
int n;
vector<pair<string,string>> edges;
vector<string> kompresija;
bool loved[MAXN];
vector<int> adj[MAXN];
bool pos[MAXN];
int siz=0;
int in[MAXN],out[MAXN];
void dfs(int node)
{
pos[node]=true;siz++;
for (int sled:adj[node])
{
if (!pos[sled]) dfs(sled);
}
}
int32_t main()
{
cin>>n;
for (int i=1;i<=n;i++)
{
string s1,s2;cin>>s1>>s2;edges.push_back({s1,s2});
kompresija.push_back(s1);kompresija.push_back(s2);
}
if (n%2==1) {cout<<-1<<endl;return 0;}
sort(kompresija.begin(),kompresija.end());kompresija.erase(unique(kompresija.begin(),kompresija.end()),kompresija.end());
if (n<=20)
{
int answer=n;
for (int maska=0;maska<(1<<n);maska++)
{
bool valid=true;
for (int bit=0;bit<n;bit++)
{
if (!(maska&(1<<bit))) continue;
int u=lower_bound(kompresija.begin(),kompresija.end(),edges[bit].first)-kompresija.begin()+1;
int v=lower_bound(kompresija.begin(),kompresija.end(),edges[bit].second)-kompresija.begin()+1;
in[v]++;out[u]++;adj[u].push_back(v);
if (u==v) valid=false;
}
for (int node=1;node<=n;node++)
{
if (in[node]>=2 or out[node]>=2) {valid=false;break;}
if (in[node]==1 and out[node]==1)
{
if ((int)adj[adj[node][0]].size()!=1) {valid=false;break;}
if ((int)adj[adj[node][0]][0]!=node) {valid=false;break;}
}
}
if (valid) answer=min(answer,n-(int)__builtin_popcount(maska));
for (int node=1;node<=n;node++) {in[node]=0;out[node]=0;adj[node].clear();}
}
cout<<answer<<endl;return 0;
}
for (pair<string,string> edge:edges)
{
int u=lower_bound(kompresija.begin(),kompresija.end(),edge.first)-kompresija.begin()+1;
int v=lower_bound(kompresija.begin(),kompresija.end(),edge.second)-kompresija.begin()+1;
adj[u].push_back(v);loved[v]=true;
}
bool subtask2=true;
for (int i=1;i<=(int)kompresija.size();i++)
{
if (!loved[i]) {subtask2=false;break;}
}
if (subtask2)
{
int answer=0;
for (int node=1;node<=(int)kompresija.size();node++)
{
if (pos[node]) continue;
siz=0;dfs(node);if (siz==2) continue;
answer+=(siz+1)/2;
}
cout<<answer<<endl;return 0;
}
return 0;
}