#include <bits/stdc++.h>
using namespace std;
template <typename T>
void alert(const T& t) {
  cout << t;
  exit(0);
}
template <typename T>
inline void alert(vector<T>& t, char delim = ' ') {
  for (T const& ti : t) cout << ti << delim;
  exit(0);
}
struct node {
  vector<long long> to;
};
vector<node> g;
vector<long long> path;
vector<long long> match;
vector<long long> lim;
long long n, m;
void dfs(long long u) {
  match[u] = path.size();
  path.push_back(u);
  for (long long i = 0; i < g[u].to.size(); i++) {
    dfs(g[u].to[i]);
  }
  lim[u] = path.size() - match[u];
}
int main() {
  {
    if ("TASKNAME" != "TASKNAME") {
      freopen(
          "TASKNAME"
          ".in",
          "r", stdin);
      freopen(
          "TASKNAME"
          ".out",
          "w", stdout);
    } else if ("TASKNAME" == "1") {
      freopen("input.txt", "r", stdin);
      freopen("output.txt", "w", stdout);
    }
  }
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(0);
  cin >> n;
  string a, b;
  cin >> a >> b;
  long long ans = 0;
  if (n % 2) {
    if (a[n / 2] != b[n / 2]) ans++;
  }
  for (long long i = 0; i < n / 2; i++) {
    bool yes = a[i] == a[n - 1 - i] && b[i] == b[n - 1 - i];
    yes |= a[i] == b[n - 1 - i] && b[i] == a[n - 1 - i];
    yes |= a[i] == b[i] && b[n - 1 - i] == a[n - 1 - i];
    if (yes) {
      continue;
    }
    if (a[i] != a[n - i - 1] && a[i] != b[i] && a[i] != b[n - i - 1] &&
        a[n - i - 1] != b[i] && a[n - i - 1] != b[n - i - 1] &&
        b[i] != b[n - i - 1]) {
      ans += 2;
      continue;
    }
    if (a[i] == a[n - i - 1] && b[i] != b[n - i - 1] && a[i] != b[i] &&
        a[i] != b[n - i - 1]) {
      ans += 2;
      continue;
    }
    ans++;
  }
  cout << ans;
  return 0;
}
