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.
I had no possibility to add a screenshot on private messages so adding it in here.
Below you can see a setup of the click branch.
Change the Type and Internal name to match your delivery.
I have set the status to only lookup the deliveries send to the recipient, but thats up to you which status to use. But I would recommend to use the send status so you don't have to look through data on deliveries there haven't been sent to the recipient.
Regarding the list: Yes it will be updated with recipient data that you can refer to directly,