Hi Derrick,
Giving that you are not on AC standard this is one way to do it:
Create a WF taking the same target group (ListA) and add a segmented split to the WF set as below:
- Both branches should have the delivery internal name (as it is a primary key) matching the email send
- first branch has segmented on open = true
- second branch should have clicked = true
Each branch will go to a list update element for their designated list.
I would recommend you to decide when the data should be extracted and run the WF once, or to have the WF running on a scheduler for a given time period to catch up the data.
One issue here could also be how to differentiate on the clicks and opens due to that we can expect that some of the recipients will have opened and clicked in the email. As standard the segmented split will extract the recipients from the target in the order of the branches.
Hope this gives you the idea of the setup 
Best, Jonas Pabst