#include<iostream>
#include<algorithm>
using namespace std;

int n, k;
int loc[6][50];
int sloc[3][100];
int sea[99][99][99];
long long int ans = 0;

bool judge(int i, int x, int y, int d)
{
  if(loc[0][i] <= sloc[0][x]&&
     sloc[0][x + 1] <= loc[3][i]&&
     loc[1][i] <= sloc[1][y]&&
     sloc[1][y + 1] <= loc[4][i]&&
     loc[2][i] <= sloc[2][d]&&
     sloc[2][d + 1] <= loc[5][i])
    return true;
  return false;
}

int main()
{
  cin >> n >> k;
  
  for(int i = 0; i < n; i++){
    for(int j = 0; j < 6; j++){
      cin >> loc[j][i];
    }
  }

  for(int i = 0; i < 6; i++){
    for(int j = 0; j < n; j++){
      sloc[i % 3][2 * j + i % 2] = loc[i][j];
    }
  }

  for(int i = 0; i < 3; i++)
    sort(sloc[i], sloc[i] + n * 2);
  
  for(int i = 0; i < n; i++){
    for(int x = 0; x < n * 2 - 1; x++){
      for(int y = 0; y < n * 2 - 1; y++){
	for(int d = 0; d < n * 2 - 1; d++){
	  if(judge(i, x, y, d))
	    sea[x][y][d]++;
	}
      }
    }
  }
  
  for(int x = 0; x < n * 2 - 1; x++){
    for(int y = 0; y < n * 2 - 1; y++){
      for(int d = 0; d < n * 2 - 1; d++){
	if(sea[x][y][d] >= k)
	  ans += (long long int) (sloc[0][x + 1] - sloc[0][x]) * (sloc[1][y + 1] - sloc[1][y]) * (sloc[2][d + 1] - sloc[2][d]);
      }
    }
  }

  cout << ans << endl;
  return 0;
}