Correct/Better way to train Music Generation RNN

Hi, From the docs, LSTM layer I understand that the outputs of LSTM layer are in the order
whole_seq_output, final_memory_state, final_carry_state, which are y^, a,c I believe.

Programming Assignment 3 : jazz-improvisation-with-lstm, in the method djmodel :
I am using these lines in for loop and the solution works.

// Sol - 1 : this works
a, _ , c = LSTM_cell(x, initial_state=[_ , c])
out = densor(a)

// Sol - 2 : this works too
a, _, c = LSTM_cell(x, initial_state=[a, c])
out = densor(a)

Sol1 is passing the data between LSTM cells like ’ _’(activation) of the previous cell passed to ’ _’ of the current cell, and c(memory) passed to c.
Sol2 is passing the data between LSTM cells like output of previous cell passed to ‘a’(activation) of the current cell, and c(memory) passed to c.

Which is the correct way to train this RNN? My intuition says both are correct as we are anyways passing data between the LSTM cells. But which is the correct/better way?

The exercise uses your “Sol 2”.
I have not tried your “Sol 1”.
If you try it, please report your findings here.