¿Por qué este bucle no me permite ingresar texto en el primer ciclo?

Lo que quiero hacer es pedirle al usuario una serie de cadenas para leer en una matriz, y luego pedirle al usuario que ingrese ese número de cadenas y las lea en la matriz. Cuando ejecuto este código, nunca me pide una entrada en el primer ciclo del primer ciclo for, simplemente imprime "String # 0: String # 1:" y luego puedo ingresar texto. ¿Por qué es eso y qué hice mal?

import java.util.Scanner;

public class ovn9 
{
public static void main(String[] args)
{
    Scanner sc=new Scanner(System.in);

    System.out.print("Number of inputs: ");

    int lines= sc.nextInt();
    String[] text=new String[lines];

    for(int x=0; x<text.length; x++)
    {
        System.out.print("String #"+x+": ");
        text[x] = sc.nextLine();
    }

    for(int y=0; y<text.length; y++)
        System.out.println(text[y]);

}
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta