Complicated Declarations - Programming

Q1:

What will be the output of the program?
#include<stdio.h>

int main()
{
    char huge *near *far *ptr1;
    char near *far *huge *ptr2;
    char far *huge *near *ptr3;
    printf('%d, %d, %d\n', sizeof(**ptr1), sizeof(ptr2), sizeof(*ptr3));
    return 0;
}

A 4, 4, 4

B 2, 2, 2

C 2, 8, 4

D 2, 4, 8

ANS:A - 4, 4, 4

No answer description is available. Let's discuss.