sending Delay time from the serial monitor ?

Hello
skipping the "i am new part"
Trying to make a "Traffic Light" and i want to make the delay time of the green for each side comes from the serial monitor.
my problem is what is the syntax for sending a number through the serial monitor and assign it to a variable in the delay()?
and i know there should be another way to make my code smaller any help would be appreciated.
this is my code and thanks.

int g1=2,y1=3,r1=4,g2=5,y2=6,r2=7,g3=8,y3=9,r3=10,g4=11,y4=12,r4=13;
int k;
int c=3000,d=3000,f=3000,g=3000;
void setup() 
{
for(int i=2;i<14;i++)
pinMode(i,OUTPUT);
Serial.begin(9600);
}

void loop()
{
digitalWrite(g1,1);
digitalWrite(y1,0);
digitalWrite(r1,0);
digitalWrite(g2,0);
digitalWrite(y2,0);
digitalWrite(r2,1);
digitalWrite(g3,0);
digitalWrite(y3,0);
digitalWrite(r3,1);
digitalWrite(g4,0);
digitalWrite(y4,0);
digitalWrite(r4,1);
delay(c);
for(k=1;k<4;k++)
{
digitalWrite(g1,0);
  digitalWrite(y1,0);
delay(250);
digitalWrite(y1,1);

delay(250);
}
digitalWrite(g1,0);
digitalWrite(y1,0);
digitalWrite(r1,1);
digitalWrite(g2,1);
digitalWrite(y2,0);
digitalWrite(r2,0);
digitalWrite(g3,0);
digitalWrite(y3,0);
digitalWrite(r3,1);
digitalWrite(g4,0);
digitalWrite(y4,0);
digitalWrite(r4,1);
delay(d);
for(k=0;k<3;k++)
{
digitalWrite(g2,0);
  digitalWrite(y2,0);
delay(250);
digitalWrite(y2,1);

delay(250);
}
digitalWrite(g1,0);
digitalWrite(y1,0);
digitalWrite(r1,1);
digitalWrite(g2,0);
digitalWrite(y2,0);
digitalWrite(r2,1);
digitalWrite(g3,1);
digitalWrite(y3,0);
digitalWrite(r3,0);
digitalWrite(g4,0);
digitalWrite(y4,0);
digitalWrite(r4,1);
delay(g);
for(k=0;k<3;k++)
{
digitalWrite(g3,0);
  digitalWrite(y3,0);
delay(250);
digitalWrite(y3,1);

delay(250);
}
digitalWrite(g1,0);
digitalWrite(y1,0);
digitalWrite(r1,1);
digitalWrite(g2,0);
digitalWrite(y2,0);
digitalWrite(r2,1);
digitalWrite(g3,0);
digitalWrite(y3,0);
digitalWrite(r3,1);
digitalWrite(g4,1);
digitalWrite(y4,0);
digitalWrite(r4,0);
delay(f);
for(k=0;k<3;k++)
{
digitalWrite(g4,0);
  digitalWrite(y4,0);
delay(250);
digitalWrite(y4,1);
delay(250);
}

}

The best thing to do is read Robin2's Serial Input Basics - updated and understand it.

It will give you ideas how to receive serial data. Once you have implemented either example 2 or example 3, you can continue with reply #2 in that thread that shows how to convert text to numbers (example 4).

byte c=3000,d=3000,f=3000,g=3000;

You might also want to read up on variable types, and the values that any given type can hold before you post any more nonsense like this.

PaulS:

byte c=3000,d=3000,f=3000,g=3000;

You might also want to read up on variable types, and the values that any given type can hold before you post any more nonsense like this.

thanks for pointing it out, my bad i'll change it.