program fwt_2D;

type	tFwtArr =	array[ 1..1000, 1..1000, 0..1 ] of int64;

var	fwt_add, fwt_mul: tFwtArr;
	n, m: longInt;
	
function read2( var fwt: tFwtArr; x, y: longInt ): int64;
var	mul, add: int64;
	i: longInt;
begin
	i := y; mul := 0; add := 0;
	while ( i > 0 ) do
	begin
		inc( mul, fwt[x][i][0] );
		inc( add, fwt[x][i][1] );
		
		dec( i, i and -i );
	end;
	
	exit( ( y * mul ) + add );
end;

function read1( x, y: longInt ): int64;
var	mul, add: int64;
	i: longInt;
begin
	i := x; mul := 0; add := 0;
	while ( i > 0 ) do
	begin
		inc( mul, read2( fwt_mul, i, y ) );
		inc( add, read2( fwt_add, i, y ) );
		
		dec( i, i and -i );
	end;
	
	exit( ( x * mul ) + add );
end;

function fwt_read( x1, x2, y1, y2: longInt ): int64;
begin
	exit( read1( x2, y2 ) - read1( x1 - 1, y2 ) - read1( x2, y1 - 1 ) + read1( x1 - 1, y1 - 1 ) );
end;

procedure update2( var fwt: tFwtArr; x, y: longInt; mul, add: int64 );
var	i, j: longInt;
begin
	i := x;
	while ( i <= n ) do
	begin
		j := y;
		while ( j <= m ) do
		begin
			inc( fwt[i][j][0], mul );
			inc( fwt[i][j][1], add );
		
			inc( j, j and -j );
		end;
	
		inc( i, i and -i );
	end;
end;

procedure update1( x, y1, y2: longInt; mul, add: int64 );
begin
	update2( fwt_mul, x, y1,  mul, -mul * (y1 - 1) );
	update2( fwt_mul, x, y2, -mul,  mul * y2 );

	update2( fwt_add, x, y1,  add, -add * (y1 - 1) );
	update2( fwt_add, x, y2, -add,  add * y2 );
end;

procedure fwt_update( x1, x2, y1, y2: longInt; k: int64 );
begin
	update1( x1, y1, y2,  k, -k * (x1 - 1) );
	update1( x2, y1, y2, -k,  k * x2 );
end;

var	q, t, x1, x2, y1, y2, i: longInt;
	k: int64;

begin
	readln( n, m, q );
	for i := 1 to q do
	begin
		read( t, x1, y1, x2, y2 );
		if ( t = 1 ) then
		begin
			k := fwt_read( x1, x2, y1, y2 );
			if ( k > 0 ) then
				writeln( 'Friends' )
			else if ( k < 0 ) then
				writeln( 'Enemies' )
			else
				writeln( 'I don''t know' );
		end
		else
		begin
			readln( k );
			
			fwt_update( x1, x2, y1, y2, k );
		end;
	end;
end.
