To Prove: $L$ is RE but not REC.
Proof:
Let a turing machine $M$ accepts the language $L$.
What that machine does is that for each set $\langle M_1, M_2, k \rangle$ (which is its own input) it simulates some strings on the machines $M_1$ and $M_2$ i.e. give a string at a time to both of them as input to those machines. If they accept atleast $k$ of those input strings presented by $M$ to them then we say, accepted and Halt our turing mahcine $M$.
So, Machine $M$ halts and accepts on all accepted inputs. Hence, $L$ is RE.
but, if no string is common to $M_1$ and $M_2$, say, input set is $\large \langle a^*, b^*, 7 \rangle$ then machine $M$ will never halt. it keeps feeding those machines $\infty$ input strings.
Hence, it does not halt on all strings which are not in the language. $\therefore \ L$ is not REC.
Hence, $L$ is RE but not REC.