#include <bits/stdc++.h>
using namespace std;
int a[10][10], i, j;
void fun(int x, int y) {
  if (x - 2 >= 0) {
    if (y - 1 >= 0) {
      a[y - 1][x - 2] = 1;
    }
    if (y + 1 >= 0) {
      a[y + 1][x - 2] = 1;
    }
  }
  if (x + 2 >= 0) {
    if (y - 1 >= 0) {
      a[y - 1][x + 2] = 1;
    }
    if (y + 1 >= 0) {
      a[y + 1][x + 2] = 1;
    }
  }
  if (y - 2 >= 0) {
    if (x - 1 >= 0) {
      a[y - 2][x - 1] = 1;
    }
    if (x + 1 >= 0) {
      a[y - 2][x + 1] = 1;
    }
  }
  if (y + 2 >= 0) {
    if (x - 1 >= 0) {
      a[y + 2][x - 1] = 1;
    }
    if (x + 1 >= 0) {
      a[y + 2][x + 1] = 1;
    }
  }
}
int main() {
  int x, y, cnt = 0;
  string s1, s2;
  for (i = 0; i < 8; i++) {
    for (j = 0; j < 8; j++) {
      a[i][j] = 0;
    }
  }
  cin >> s1 >> s2;
  x = s1[0] - 'a';
  for (i = 0; i < 8; i++) {
    a[i][x] = 1;
  }
  y = s1[1] - '1';
  for (i = 0; i < 8; i++) {
    a[y][i] = 1;
  }
  fun(x, y);
  x = s2[0] - 'a';
  y = s2[1] - '1';
  fun(x, y);
  a[y][x] = 1;
  for (i = 0; i < 8; i++) {
    for (j = 0; j < 8; j++) {
      if (a[i][j] == 0) {
        cnt++;
      }
    }
  }
  cout << cnt << endl;
  return 0;
}
