#!/usr/bin/python3
import random
def read_integer():
	while True:
	 try:
		 m=int(input("δώσε m:"))
		 if m<=10:
		 	raise ValueError("to m>10")
		 return m
	 except Exception as e :
	       		print(f"Error:{e}")
	       		exit(1)
def generate_complex_2d_list(m):
	return [[
		complex(round(random.uniform(-1,1),2),round(random.uniform(-1,1),2))
		for _ in range(m)
		] for _ in range(m)]
def split_real_imag(matrix):
	real_parts=[]
	imag_parts=[]
	for row in matrix:
		for z in row:
			real_parts.append(z.real)
			imag_parts.append(z.imag)
	return real_parts,imag_parts

def main():
	m=read_integer()
	complex_matrix=generate_complex_2d_list(m)
#	print(complex_matrix)
	for row in complex_matrix:
		print([f"{z.real}+{z.imag}j" for z in row])
	real_parts,imag_parts=split_real_imag(complex_matrix)
	print (f"Max real={max(real_parts)}, Mean imag={sum(imag_parts)/len(imag_parts)}")
if __name__=="__main__":
	main()
