DynamicKV: Task-Aware Adaptive KV Cache Compression for Long Context LLMs