Proof that $L = \{a, b\}^* - \{(a^n b^n)^m \mid n, m \ge 1\}$ is a CFL
Suppose that $w$ is in the language. We can write $w$ as a concatenation of runs:
$$
w = a^{i_1} b^{j_1} a^{i_2} b^{j_2} \dots a^{i_m} b^{j_m},
$$
where all indices other than possibly $i_1,j_m$ are strictly positive.
A word of this form belongs to $(a^nb^n)^m$ if all indices are equal. Since $w$ is in the language, there must exist two indices which are different. There are several cases to consider:

$w = \epsilon$.
$i_1 = 0$ and $w \neq \epsilon$. In other words, $w$ starts with $b$.
$j_m = 0$ and $w \neq \epsilon$. In other words, $w$ ends with $a$.
$i_s \neq i_t$ for some $s &lt; t$. The word is thus of the general form
$$ (a+b)^*ba^xb^+(a^+b^+)^*a^yb(a+b)^*, $$
where $x \neq y$.
$j_s \neq j_t$ for some $s &lt; t$. This is similar to the preceding case.
$i_s \neq j_t$ for some $s \leq t$. The word is thus of the general form
$$ (a+b)^*ba^x(b^+a^+)^*b^ya(a+b)^*, $$
where $x \neq y$.
$j_s \neq i_t$ for some $s &lt; t$. This is similar to the preceding case.

Starting with a context-free grammar for $\{a^xb^y : x \neq y \}$ (a standard exercise – separate into cases $x&lt;y$ and $x&gt;y$), you can create a grammar covering all the cases above.