// #pragma GCC optimize ("Ofast") // #pragma GCC optimize ("unroll-loops") // #pragma GCC target ("avx,avx2,fma") #include using std::cin, std::cout, std::cerr; using ll = long long; int main() { std::ios::sync_with_stdio(false); int n; cin >> n; std::string s, t; auto f = [&](std::string s) { std::vector r; for(int i = 0; i + 1 < n; i ++) { int x = (s[i] - 'A') ^ (s[i + 1] - 'A'); if(i % 2 == 0) x = 1 - x; r.push_back(x); } return r; }; cin >> s; auto a = f(s); cin >> t; auto b = f(t); if(s[0] != t[0] || s.back() != t.back() || std::ranges::count(a, 1) != std::ranges::count(b, 1)) { cout << -1 << '\n'; } else { int p = 0; ll ans = 0; for(int i = 0; i < a.size(); i ++) if(a[i] == 1) { while(b[p] != 1) p ++; ans += std::abs(i - p); p ++; } cout << ans << '\n'; } }