# Given a binary matrix A, we want to flip the image horizontally, then invert it,
# and return the resulting image.
#
# To flip an image horizontally means that each row of the image is reversed.
# For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].
#
# To invert an image means that each 0 is replaced by 1, and each 1 is replaced
# by 0. For example, inverting [0, 1, 1] results in [1, 0, 0].

class Solution(object):
    def flipAndInvertImage(self, A):
        """
        :type A: List[List[int]]
        :rtype: List[List[int]]
        """

        # flip horizontally first
        for sub_A in A:
            sub_A.reverse()
        return ([[1 if num == 0 else 0 for num in sub_A]for sub_A in A])
