#include<stdio.h>
#include<stdlib.h>


long long X[ 100 ][ 2 ] ,x[ 100 ] ;
long long Y[ 100 ][ 2 ] ,y[ 100 ] ;
long long Z[ 100 ][ 2 ] ,z[ 100 ] ;

int i ,j ,k ,l ;

inline void sort( long long *a ,int size )
{
	qsort( a ,size ,sizeof( long long ) ,[]( const void *a ,const void *b ){ return *( int* )a - *( int* )b ; } ) ;
}

int check()
{
	if(
			X[ l ][ 0 ] > x[ i ] || X[ l ][ 1 ] < x[ i + 1 ] ||
			Y[ l ][ 0 ] > y[ j ] || Y[ l ][ 1 ] < y[ j + 1 ] ||
			Z[ l ][ 0 ] > z[ k ] || Z[ l ][ 1 ] < z[ k + 1 ]
	)
	{
		return 1 ;
	}

	return 0 ;
}

int main( void )
{
	int N ,K ;
	scanf( "%d %d" ,&N ,&K ) ;

	N *= 2 ;

	--K ;

	int n = N - 1 ;

	for( i = 0 ; i < N ; ++i )
	{
		scanf( "%lld %lld %lld" ,x + i ,y + i ,z + i ) ;

		X[ i / 2 ][ i % 2 ] = x[ i ] ;
		Y[ i / 2 ][ i % 2 ] = y[ i ] ;
		Z[ i / 2 ][ i % 2 ] = z[ i ] ;
	}

	sort( x ,N ) ;
	sort( y ,N ) ;
	sort( z ,N ) ;

	long long ans = 0 ;
	for( i = 0 ; i < n ; ++i )
	{
		for( j = 0 ; j < n ; ++j )
		{
			for( k = 0 ; k < n ; ++k )
			{
				int cnt = 0 ;

				for( l = 0 ; l < N ; ++l )
				{
					if( check() == 0 )
					{
						++cnt ;
					}
				}

				if( cnt > K )
				{
					ans += ( x[ i + 1 ] - x[ i ] ) * ( y[ j + 1 ] - y[ j ] ) * ( z[ k + 1 ] - z[ k ] ) ;
				}
			}
		}
	}


	printf( "%lld\n" ,ans ) ;

	return 0 ;
}