# Task
 You're given a two-dimensional array of integers `matrix`. Your task is to determine the smallest non-negative integer that is not present in this array.

# Input/Output


 - `[input]` 2D integer array `matrix`

  A non-empty rectangular matrix. 

 `1 ≤ matrix.length ≤ 10`

 `1 ≤ matrix[0].length ≤ 10`


 - `[output]` an integer

  The smallest non-negative integer that is not present in matrix.


# Example

 For 
 
 ```
 matrix = [
 [0, 2],
 [5, 1]]```
 the result should be `3`
 
 0,1,2,`(3)`...5

Difficulty: introductory

Starter code:

def smallest_integer(matrix):
	

Solutions:
def smallest_integer(matrix):
    nums = set(sum(matrix, []))
    n = 0
    while n in nums: n += 1
    return n

from itertools import filterfalse, chain, count

def smallest_integer(matrix):
    return next(filterfalse(set(chain.from_iterable(matrix)).__contains__, count()))

def smallest_integer(matrix):
    i = 0
    matrix = sum(matrix, [])
    while True:
        if i not in matrix:
            return i
        i += 1

smallest_integer=lambda m:(lambda s:min({n+1for n in s if-1<=n}-s))(set(sum(m,[-1])))

from itertools import count

def smallest_integer(matrix):
    nums = {n for row in matrix for n in row}
    for i in count():
        if i not in nums:
            return i

def smallest_integer(arr):    
    res = sorted(set(x for row in arr for x in row))
    for x in range(res[-1]):
        if x not in res:
            return x
    return max(res[-1] + 1, 0)

def smallest_integer(matrix):
    numbers = sorted(set(n for row in matrix for n in row if n >= 0))
    return next((b for a, b in zip(numbers, range(len(numbers))) if a != b), len(numbers))

from itertools import chain, count

def smallest_integer(matrix):
    xs = set(chain.from_iterable(matrix))
    return next(i for i in count(0) if i not in xs)

def smallest_integer(matrix):
    s, n = { elt for l in matrix for elt in l }, 0
    while True:
        if n not in s: return n
        n+=1

def smallest_integer(matrix):
    r = [j for i in matrix for j in i]
    i = 0
    while True:
        if i not in r:
            return i
        i += 1