loop do
    h, w = gets.split.map(&:to_i)
    break if h == 0 && w == 0
    s = h.times.map{gets.chomp}
    hash = Hash.new(0)
    h.times do |i|
        w.times do |j|
            #up
            ni = i
            nj = j
            str = s[ni][nj]
            ni -= 1
            ni = h - 1 if ni == -1
            while true
                str += s[ni][nj]
                hash[str] += 1
                ni -= 1
                ni = h - 1 if ni == -1
                break if ni == i
            end
            #ne
            ni = i
            nj = j
            str = s[ni][nj]
            ni -= 1
            ni = h - 1 if ni == -1
            nj += 1
            nj = 0 if nj == w
            while true
                str += s[ni][nj]
                hash[str] += 1
                ni -= 1
                ni = h - 1 if ni == -1
                nj += 1
                nj = 0 if nj == w
                break if nj == j && ni == i
            end
            #right
            ni = i
            nj = j
            str = s[ni][nj]
            nj += 1
            nj = 0 if nj == w
            while true
                str += s[ni][nj]
                hash[str] += 1
                nj += 1
                nj = 0 if nj == w
                break if nj == j
            end
            #se
            ni = i
            nj = j
            str = s[ni][nj]
            ni += 1
            ni = 0 if ni == h
            nj += 1
            nj = 0 if nj == w
            while true
                str += s[ni][nj]
                hash[str] += 1
                ni += 1
                ni = 0 if ni == h
                nj += 1
                nj = 0 if nj == w
                break if nj == j && ni == i
            end
            #down
            ni = i
            nj = j
            str = s[ni][nj]
            ni += 1
            ni = 0 if ni == h
            while true
                str += s[ni][nj]
                hash[str] += 1
                ni += 1
                ni = 0 if ni == h
                break if ni == i
            end
            #sw
            ni = i
            nj = j
            str = s[ni][nj]
            ni += 1
            ni = 0 if ni == h
            nj -= 1
            nj = w - 1 if nj == -1
            while true
                str += s[ni][nj]
                hash[str] += 1
                ni += 1
                ni = 0 if ni == h
                nj -= 1
                nj = w - 1 if nj == -1
                break if nj == j && ni == i
            end
            #left
            ni = i
            nj = j
            str = s[ni][nj]
            nj -= 1
            nj = w - 1 if nj == -1
            while true
                str += s[ni][nj]
                hash[str] += 1
                nj -= 1
                nj = w - 1 if nj == -1
                break if nj == j
            end
            #nw
            ni = i
            nj = j
            str = s[ni][nj]
            ni -= 1
            ni = h - 1 if ni == -1
            nj -= 1
            nj = w - 1 if nj == -1
            while true
                str += s[ni][nj]
                hash[str] += 1
                ni -= 1
                ni = h - 1 if ni == -1
                nj -= 1
                nj = w - 1 if nj == -1
                break if nj == j && ni == i
            end
        end
    end
    ans = hash.select{|k,v| v > 1}
    if ans.empty?
        puts "0"
    else
        ans = ans.sort_by{|k,v| -k.length}
        max = ans[0][0].length
        ans.select!{|k,v| k.length == max}
        puts ans.sort_by{|k,v| k}[0][0]
    end
end

Measured memory_bytes: 50036