complete（both  direction）