Confused by 'ps' output

Thanks in advance to anyone that can offer me guidance on my questions… Which is about the priority (PR PRI) column in the ‘ps’ output

From what I’ve read… I’d expect to see a numerical value fall within the range of 1 - 139 for both processes and kernel threads

But I’m seeing negative numerical values on some kernel threads… ‘ps -el’ displays the priority (PR, PRI) for both the migration and watchdog kernel threads as -40… Yet top displays them as ‘rt’… Which I thought meant the numerical value of 99

Also the ‘ps -el’ output displays the priority of the irq/18-vmwgfx kernel thread with a value of 0… But top displays it as -51

I’ve searched and haven’t seen anything about negative values for priority on processes or kernel threads… Could someone explain why I’m seeing negative values please? Also why am I seeing different values between the ps and top utilities?