rfid tag shows the wrong value

Hello, I set up my Arduino mega with an rfid-rc522, most of the time is picks up the correct number from the rfid card but there are times it does not have the correct number.

Correct number: 203 4 182 137 240
Incorrect number(s);
0 32 182 137 240
203 0 182 137 240
75 32 182 137 240
11 32 183 137 240
203 4 0 137 240
0 32 0 137 240

The same thing happens with my other rfid tag the kit came with, but there are other number formations for that tag.

Here is my code:

#include <LiquidCrystal.h> //lcd screen library
LiquidCrystal lcd(49, 45, 35, 33, 31, 29); //needed to tell the arduino what pins are being used with the lcd

/* Include the standard Arduino SPI library /
#include <SPI.h>
/
Include the RFID library /
#include <RFID.h>
/
Define the DIO used for the SDA (SS) and RST (reset) pins. /
#define SDA_DIO 9
#define RESET_DIO 8
/
Create an instance of the RFID library */
RFID RC522(SDA_DIO, RESET_DIO);

void setup() {
lcd.begin(20, 4); //used to setup the lcd screen
lcd.clear();

SPI.begin();
RC522.init();
lcd.setCursor(0,0);
lcd.print(" Good Day!");
lcd.setCursor(0,2);
lcd.print(" Please Scan your");
lcd.setCursor(0,3);
lcd.print(" RFID Card");

Serial.println("Good Day!");
Serial.println("Please Scan your RFID Card");

}

void loop() {
/* Has a card been detected? */
if (RC522.isCard()) {

RC522.readCardSerial();
int zero = RC522.serNum[0];
int one = RC522.serNum[1]; //the tag code is separated into 5 parts(from my understanding)
int two = RC522.serNum[2]; //these 5 int's are used to store the numbers and also used inside
int three = RC522.serNum[3]; //the if statement below.
int four = RC522.serNum[4];

lcd.clear();
lcd.setCursor(0,0);
lcd.print("Card Detected:");

delay(500);

//if all the 5 rfid values match what is stored within this if statement
//it will show an access granted message on an lcd screen
if(zero == 203 && one == 4 && two == 182 && three == 137 && four == 240){
lcd.setCursor(0,2);
lcd.print("Access Granted!");
lcd.setCursor(0,3);
lcd.print(zero); lcd.print(" ");
lcd.print(one);lcd.print(" "); //lcd prints the rdif tag values
lcd.print(two);lcd.print(" "); //used for debugging purposes
lcd.print(three);lcd.print(" "); //once fixed this will be removed
lcd.print(four);

delay(1000);

lcd.clear();
lcd.setCursor(6,1); //welcome message if access if granted
lcd.print("Welcome!");
delay(500);
}

//if access is not granted an "access denied"
//message will be writen on the lcd screen
else{

delay(500);
lcd.setCursor(0,1);
lcd.print("ACCESS DENIED!!!");
lcd.setCursor(0,2);
lcd.print(zero);lcd.print(" ");
lcd.print(one);lcd.print(" "); //lcd prints the rfid tag values
lcd.print(two);lcd.print(" "); //used for debugging purposes
lcd.print(three);lcd.print(" "); //once fixed this will be removed
lcd.print(four);

delay(4000); //delay to give enough time to see false rfid readings
lcd.clear();
lcd.print(" Try Again..."); //try again message displayed after failed attempt

}

lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Good Day!");
lcd.setCursor(0,2); //once the program runs in completion this message will
lcd.print(" Please Scan your"); //remain on the lcd screen
lcd.setCursor(0,3);
lcd.print(" RFID Card");

}
}