Answer can be 3 candidate key according to Wikipedia
A foreign key is a set of attributes that references a candidate key.
If an attribute can only take the values which are present as values of some other attribute, it will be foreign key to the attribute to which it refers. The relation which is being referenced is called referenced relation and corresponding attribute is called referenced attribute and the relation which refers to referenced relation is called referencing relation and corresponding attribute is called referencing attribute.
But according to reference books Korth, Raghu ramkrishan
Answer must be B primary key because candidate key can be NULL such case reference can be break but primary key always unique and not null. It should be appropriate and right option.