Grepping multiple strings from one column

I have 3-column tab separated data that looks like the following:

act of+n-a-large+vn-tell-v 0.067427
act_com of+n+n-a-large-manufacturer-n 0.129922
act-act_com-com in+n-j+vn-pass-aux-restate-v 0.364499666667
com nmod+n-j+ns-invader-n 0.527521
act_com-com obj+n-a-j+vd-contribute-v 0.091413
act on+ns+v-retreat-v 0.751588
act coord+ns-j+n-j-trash-n 0.751588
com obj+n-the+vn-pass-however-recreate-v 0.408118
act-com verb+ns-j+n-a-pull-n 0.3406765

I want to specifically grep the first column.
The possible combinations of the first column are the following:

act
com
act_com
act-act_com
act_com-com
act-act_com-com
act-com

I want to remove all of those lines that have the value 'act-com' in the first column.

What is the most efficient grep to do this?
I have tried

grep -w 'act\|com\|act_com\|act-act_com-com\|act-act_com\|act_com-com' input

However, it also considers 'act-com' as a valid string.
What should I do?

The desired output is the following:

act of+n-a-large+vn-tell-v 0.067427
act_com of+n+n-a-large-manufacturer-n 0.129922
act-act_com-com in+n-j+vn-pass-aux-restate-v 0.364499666667
com nmod+n-j+ns-invader-n 0.527521
act_com-com obj+n-a-j+vd-contribute-v 0.091413
act on+ns+v-retreat-v 0.751588
act coord+ns-j+n-j-trash-n 0.751588
com obj+n-the+vn-pass-however-recreate-v 0.408118

Try:

grep -w 'act\|com\|act_com\|act-act_com-com\|act-act_com\|act_com-com' input | grep -v "act-com"

I just tried

grep -w -v 'act-com' input 

and it seems to have worked.
thanks!