Serial.read() help

I am attempting to use the Serial.read() function, but i cannot seem to get it to work. For my code:

int x,y,r,g,b;

void setup(){
  Serial.begin(9600);
  pinMode(13,OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    x = Serial.read();
    y = Serial.read();
    r = Serial.read();
    g = Serial.read();
    b = Serial.read();
    
    Serial.println(x);
    Serial.println(y);
    Serial.println(r);
    Serial.println(g);
    Serial.println(b);
  }
}

With the input : 1 2 3 4 5

I get the output:

49
-1
-1
-1
-1
32
-1
-1
-1
-1
50
-1
-1
-1
-1
32
-1
-1
-1
-1
51
32
52
32
53
10
-1
-1
-1
-1

please help!

-1 means "no data available at this time". Wait for "Serial.available() >= 5" before you read five characters.

Thanks!

Maybe I'm just making things more complicated than they ought to be...

// number of values to read
const int NUM_VALUES = 5;

// array to store values
int values[NUM_VALUES];

// where to put the next raead value
int currIndex = 0;

// instead of multiple variables, name the array indexes
const int xIdx = 0;
const int yIdx = 1;
const int rIdx = 2;
const int gIdx = 3;
const int bIdx = 4;


// dump array contents on serial port
void printValues(const int ary[], int numElements) {
    for (int i = 0; i < numElements; i++) {
        Serial.println(ary[i], DEC);
    }
}


void setup(){
    Serial.begin(9600);
    pinMode(13,OUTPUT);
}

void loop() {
    // do we have at least 1 byte in the serial buffer ?
    if (Serial.available() > 0) {
        // yes, read it
        int value = Serial.read();
        
        // store it into the array
        values[currIndex] = value;
        
        // next byte position into the array
        currIndex++;
        
        // have we filled the array ?
        if (currIndex >= NUM_VALUES) {
            // yes, dump its contents on the serial line
            printValues(values, NUM_VALUES);
        }
        
        // start over
        currIndex = 0;
    }
}