#include <bits/stdc++.h>
bool debug = false;
using namespace std;
template <class T1>
void deb(T1 e1) {
  if (debug) {
    cout << "[DEBUG]";
    cout << e1 << endl;
  }
}
template <class T1, class T2>
void deb(T1 e1, T2 e2) {
  if (debug) {
    cout << "[DEBUG]";
    cout << e1 << " " << e2 << endl;
  }
}
template <class T1, class T2, class T3>
void deb(T1 e1, T2 e2, T3 e3) {
  if (debug) {
    cout << "[DEBUG]";
    cout << e1 << " " << e2 << " " << e3 << endl;
  }
}
template <class T1, class T2, class T3, class T4>
void deb(T1 e1, T2 e2, T3 e3, T4 e4) {
  if (debug) {
    cout << "[DEBUG]";
    cout << e1 << " " << e2 << " " << e3 << " " << e4 << endl;
  }
}
template <class T1, class T2, class T3, class T4, class T5>
void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5) {
  if (debug) {
    cout << "[DEBUG]";
    cout << e1 << " " << e2 << " " << e3 << " " << e4 << " " << e5 << endl;
  }
}
template <class T1, class T2, class T3, class T4, class T5, class T6>
void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5, T6 e6) {
  if (debug) {
    cout << "[DEBUG]";
    cout << e1 << " " << e2 << " " << e3 << " " << e4 << " " << e5 << " " << e6
         << endl;
  }
}
template <typename T>
void print_vector_debug(const T& t) {
  if (debug) {
    cout << "[DEBUG] VECTOR:";
    for (auto i = t.cbegin(); i != t.cend(); ++i) {
      if ((i + 1) != t.cend()) {
        cout << *i << " ";
      } else {
        cout << *i << endl;
      }
    }
  }
}
template <typename T>
void print_array_debug(const T arr, int size) {
  if (debug) {
    cout << "[DEBUG] VECTOR:";
    for (int i = 0; i < size; ++i) {
      cout << arr[i] << " ";
    }
    cout << endl;
  }
}
template <typename T>
void print_2Darray_debug(const T arr, int rows, int cols) {
  if (debug) {
    cout << "[DEBUG] Matrix:" << endl;
    for (int i = 0; i < rows; ++i) {
      for (int j = 0; j < cols; ++j) {
        cout << arr[i][j] << " ";
      }
      cout << endl;
    }
    cout << endl;
  }
}
template <typename T>
void print_matrix_debug(const T& t) {
  if (debug) {
    cout << "[DEBUG] MATRIX:" << endl;
    for (auto i = t.cbegin(); i != t.cend(); ++i) {
      for (auto j = i->cbegin(); j != i->cend(); ++j) {
        cout << *j << " ";
      }
      cout << endl;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  string str1, str2;
  cin >> str1 >> str2;
  int cost = 0;
  int limit = n / 2 - 1;
  deb("limit = ", limit);
  if (n % 2 != 0 && str1[n / 2] != str2[n / 2]) ++cost;
  deb("init cost = ", cost);
  for (int i = 0; i <= limit; ++i) {
    deb("i = ", i);
    char a1 = str1[i];
    char a2 = str1[n - 1 - i];
    char b1 = str2[i];
    char b2 = str2[n - 1 - i];
    deb("a1 = ", a1, "a2 = ", a2);
    deb("b1 = ", b1, "b2 = ", b2);
    if (b1 == b2 && a1 != a2) {
      deb("d1");
      cost += 1;
      continue;
    }
    if (b1 != b2) {
      if (a1 == b1) {
        if (a2 != b2) {
          deb("d2");
          cost += 1;
        }
        continue;
      }
      if (a1 == b2) {
        if (a2 != b1) {
          deb("d3");
          cost += 1;
        }
        continue;
      }
      if (a2 == b1) {
        if (a1 != b2) {
          deb("d4");
          cost += 1;
        }
        continue;
      }
      if (a2 == b2) {
        if (a1 != b1) {
          deb("d5");
          cost += 1;
        }
        continue;
      }
      cost += 2;
    }
  }
  printf("%d\n", cost);
  return 0;
}
