1 | #include<bits/stdc++.h> |
2 | using namespace std; |
3 | const int N=2*1e5+10; |
4 | int n; |
5 | string s,t; |
6 | int ans=0; |
7 | int flag[30]; |
8 | int flag2[30]; |
9 | int last_i[30]; |
10 | int main() |
11 | { |
12 | cin>>n; |
13 | cin>>s>>t; |
14 | if(s==t) |
15 | { |
16 | cout<<0; |
17 | return 0; |
18 | } |
19 | for(int i=0;i<n;i++) |
20 | { |
21 | if(s[i]!=t[i]) |
22 | { |
23 | if(s[last_i[s[i]-'a'+1]]==t[last_i[s[i]-'a'+1]]) |
24 | { |
25 | cout<<-1; |
26 | return 0; |
27 | } |
28 | } |
29 | flag2[t[i]-'a'+1]++; |
30 | flag[s[i]-'a'+1]++; |
31 | last_i[s[i]-'a'+1]=i; |
32 | } |
33 | for(int i=1;i<=26;i++) |
34 | { |
35 | if(flag[i]!=0) |
36 | { |
37 | ans++; |
38 | } |
39 | } |
40 | bool flag3=1; |
41 | for(int i=1;i<=26;i++) |
42 | { |
43 | if(bool(flag[i])!=bool(flag2[i])) |
44 | { |
45 | flag3=0; |
46 | break; |
47 | } |
48 | } |
49 | if(flag3) |
50 | { |
51 | ans++; |
52 | } |
53 | cout<<ans; |
54 | return 0; |
55 | } |