1. A method for decoding a current block included in a bitstream, the method comprising: generating, in a memory, a candidate list including a fixed number of candidates for a motion vector to be used for decoding the current block; decoding an index, included in the bitstream, identifying one candidate in the candidate list; selecting, based on the decoded index, the candidate; predicting the current block using the selected candidate; and generating an image using the predicted current block, wherein the generating the candidate list includes: adding, into the candidate list, one or more candidates of a first type for the motion vector for the current block, each of the candidates of the first type being derived from a first motion vector of a first block that is adjacent to the current block; and adding, into the candidate list, one or more candidates of a second type for the motion vector for the current block, each of the candidates of the second type being derived from a second motion vector of a second block that is different from each first block when a total number of the candidates of the first type is less than the fixed number, the candidates of the second type being added until a total number of the candidates of the first type and the candidates of the second type reaches the fixed number, the candidates of the second type being different from the candidates of the first type, wherein only the one or more candidates of the first type are added to the candidate list before the one or more candidates of the second type are added to the candidate list.