s = input().split()
m = int(s[0])
n = int(s[1])
# 定义一个空的二维列表,i是外层行数,j是内层列数
a = [[None for j in range(n)] for i in range(m)]
# 定义mx最大数,初始值定义最小
mx = 0
# 定义mi最小数,初始值定义最大
mi = 99999
for i in range(m):
    t = input().split()
    for j in range(n):
        a[i][j] = int(t[j])
        # 打擂
        mx = max(mx, a[i][j])
        mi = min(mi, a[i][j])
        # 输出最大数-最小数
print(mx - mi)

/**************************************************************
	Problem: 1272
	User: admin
	Language: Python
	Result: Accepted
	Time:92 ms
	Memory:34480 kb
****************************************************************/